.NET学习之010203总结
来源:互联网 发布:手机兼职软件 编辑:程序博客网 时间:2024/06/05 07:52
1、可空类型( double? dNum=null;)
·可空类型可以强制转换为对应的基础类型,比如int?x=3;int y=(int)x;,但在转换之前一定要先测试是否不为空,如果为空的话就会出错。
·因为可空类型可能为空,于是很多运算法则将不再简单适用,比如A+B,如果A或者B当中有一个或者两个为可空类型,那么它们便不能简单相加,因为它们可能会为空,这时结果也就可能会为空,所以一定要先使用HasValue属性测试是否为空,或者使用GetValueOrDefault属性返回该基础类型所赋的值或默认值,再或者使用??运算符分配默认值,当前值为空的可空类型被赋值给非空类型时将应用该默认值,比如int?x=null;int y=x??-1;,但是切不可直接进行运算。
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>///Class1 的摘要说明/// </summary>public class Class1{ public int? _id; public int? Id { get { return _id; } set { _id = value; } } public Class1() { // //TODO: 在此处添加构造函数逻辑 // }}
代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class Default6 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { Class1 c = new Class1(); Response.Write(c._id+"<br>"); Response.Write(c.Id);//结果什么都没有输出,在类的成员变量(全局变量),可控类型默认值为null,如果是非可空的int类型默认值为0. }}
2、面向对象三大特征
->封装性:打包,便于管理
->继承性:将一个类库作为原始模板,在其上扩展另外的类库
拿来主义
解决代码的冗余
单根性、传递性
->多态性:对象在调用同一个方法的时候表现出来的多种状态
-->重写基类方法实现多态,父类统一调用,子类具体实现;对象.方法(根据对象选择对应的方法,实现多态)
-->隐藏基类方法实现多态
-->new则隐藏,over重写,隐藏看类型,重写只管新
->继承性:将一个类库作为原始模板,在其上扩展另外的类库
拿来主义
解决代码的冗余
单根性、传递性
->多态性:对象在调用同一个方法的时候表现出来的多种状态
-->重写基类方法实现多态,父类统一调用,子类具体实现;对象.方法(根据对象选择对应的方法,实现多态)
-->隐藏基类方法实现多态
-->new则隐藏,over重写,隐藏看类型,重写只管新
3、new 申请内存->开辟内存->指向内存
->从子类构造方法往上找,依次调用构造方法(先将父类的成员初始化完毕,再将子类的成员初始化完毕)
4、里氏转换
->子类可以赋值给父类对象
->父类对象可以强制转换成对应的子类对象
变量 is 类型 : true/false (is 适用引用类型)
父变量 as 子类型 : 结果/null
->父类对象可以强制转换成对应的子类对象
变量 is 类型 : true/false (is 适用引用类型)
父变量 as 子类型 : 结果/null
5、ref 和out
->方法内外变量不同,值相同,变量不同,如果希望内外变量相同,就可以用ref
->使用ref必须在使用前赋值,方法中可以改变这个变量的值,如果该改变相当于返回多个值
->out必须在方法中赋值后使用
->使用ref必须在使用前赋值,方法中可以改变这个变量的值,如果该改变相当于返回多个值
->out必须在方法中赋值后使用
6、dataGridView
->dataGridView绑定数据需要使用属性,所以可以用自动属性来操作。
7、单例模式
1)将构造函数私有化
2)提供一个静态方法,返回一个对象
3)创建一个单例
2)提供一个静态方法,返回一个对象
3)创建一个单例
public static Form2 FrmSingle=null;//全局唯一的单例;private Form2(){ InitializeComponent();}public static Form2 getSingle(){ if(FrmSingle=null){FrmSingle=new Form2();} return FrmSingle}
8、XML
1)严格大小写2)成对出现
3)有且只能有一个
9、String
->构造方法new string(char[])
new string (char,int)
->常用属性
索引(Char) str[3]
Length
->常用方法
增:
构造方法
string Insert (int startindex,string value)
string string.Join(string splitStr,string[]);//SplitStr分割字符
string Replace(string,string);//"123".Replace("2","222");将其中2替换成222
string string.Concat(string[]);//将字符串合并成一个字符串
string PadLeft(int,char)//在左边填充一定空格,以补齐它
string PadRight(int,char)
增:
构造方法
string Insert (int startindex,string value)
string string.Join(string splitStr,string[]);//SplitStr分割字符
string Replace(string,string);//"123".Replace("2","222");将其中2替换成222
string string.Concat(string[]);//将字符串合并成一个字符串
string PadLeft(int,char)//在左边填充一定空格,以补齐它
string PadRight(int,char)
删:
string Remove(int starIndex,int count);
string Substring(int startIndex,int count);
string Trim(params,char[]);
string TrimStart();
string TrimEnd();
string Remove(int starIndex,int count);
string Substring(int startIndex,int count);
string Trim(params,char[]);
string TrimStart();
string TrimEnd();
改:
首先ToCharArray(),再Join或Concat
string ToUpper();
首先ToCharArray(),再Join或Concat
string ToUpper();
查:
bool Contains(string);
int IndexOf(char,int);
int LastIndexOf(char,int);//获得文件名
int IndexOfAny(char[],int);
bool EndWith(string);
其他:
bool string.IsNullOrEmpty(string);
string[] r="as d f fg s ".Split(" ".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
bool Contains(string);
int IndexOf(char,int);
int LastIndexOf(char,int);//获得文件名
int IndexOfAny(char[],int);
bool EndWith(string);
其他:
bool string.IsNullOrEmpty(string);
string[] r="as d f fg s ".Split(" ".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
10、StringBuilder
->字符串不可变,长期拼接字符串性能较低
->Stringbuilder
Append(string);
AppendLine(string)
AppendFormat("{0}{1}",1,“22”);
->Stringbuilder
Append(string);
AppendLine(string)
AppendFormat("{0}{1}",1,“22”);
11、List<T>,Dictionary<TKey,TValue>
List<T> 线性集合,长度可变
-->增,Add() AddRange()
-->删,Remove(),RemoveAt()
-->改
-->查,bool Contains(T),IndexOf()
-->foreach(类型 临时变量 in 集合)
-->删,Remove(),RemoveAt()
-->改
-->查,bool Contains(T),IndexOf()
-->foreach(类型 临时变量 in 集合)
Dictionary<TKey,TValue> 散列集合
-->增,Add(键,值)
-->删,RemoveKey
-->改,索引 dic["dictionary"]="词典()"
-->查,索引 ContainsKey
-->增,Add(键,值)
-->删,RemoveKey
-->改,索引 dic["dictionary"]="词典()"
-->查,索引 ContainsKey
12、File静态
AppendAllText
AppendAllLines
ReadAllText
WriteAllText
WriteAllLines
AppendAllLines
ReadAllText
WriteAllText
WriteAllLines
13、Directory静态
string[] GetFiles(string)//返回指定路径下的所有文件
string[] GetDirectories(string)//返回路径下的所有子文件夹
bool Exis()
获得文件名
获得没有后缀名的文件名
获得全路径
FileInfo DirectoryInfo DriverInfo
string[] GetDirectories(string)//返回路径下的所有子文件夹
bool Exis()
13、Path处理路径
获得后缀名获得文件名
获得没有后缀名的文件名
获得全路径
FileInfo DirectoryInfo DriverInfo
0 0
- .NET学习之010203总结
- .NET学习之数据库总结
- .net学习之WSE使用总结
- .NET学习之面向对象总结
- android之java.net包学习总结
- Unit test学习总结之.Net
- .Net学习(二):vb.net总结之似曾相识
- .net学习总结(1)之日期函数,数字转化
- .net学习总结(2)之存储过程,触发器
- .net学习总结(3)之数据绑定,DropDownList控件
- .net学习总结(4)之FreeTextBox使用详解
- .net学习总结(5)之Gridview控件,智能搜索
- Asp.Net MVC学习总结之过滤器详解
- .net学习总结
- ADO.NET学习总结
- ibatis.net学习总结
- vb.net学习总结
- AOD.NET学习总结
- leetcode_Climbing Stairs
- Sublime Text3重要的插件
- 汉字统计HDU 2030
- Linux设置自动启动TOMCAT
- Android开发中EditText获得焦点弹出输入框改变屏幕布局的问题
- .NET学习之010203总结
- Splay终极模板
- Android 5.x OTA Update官方文档(五、Recovery系统下分区映射)
- 原码 补码 反码及进制转换
- vs2013安装xna4.0模板
- Sicily 11599. Tight words
- An Easy Problem
- Mac os x 10.10上使用quicktime录制iphone屏幕
- java连接各种数据库的代码大全