1、命名规范
Camel骆驼命名规范:变量、字段(类成员变量) int age;int _chinese(字段)
Pascal:类或者方法 GetMax GetSum
2、封装、继承、多态
***字段:存储数据,访问修饰符应该设置为private
***属性:保护字段,对字段的取值和赋值进行限定。
***this关键字:1)代表当前类的对象 2)调用自己的构造函数
***return:1)立即结束本次方法 2)在方法中返回要返回的值
3、继承
1)单根性 2)传递性
4、里氏转换
1)子类可以赋值给父类
2)如果父类中装的是子类对象,那么可以将这个父类转换为子类对象。
as(对应的对象/null) is(true/false)
5、值类型:结构体(数值类型,bool类型)、枚举类型、可空类型
引用类型:数组,用户定义的类、接口、委托,object,字符串
装箱:就是将值类型转换为引用类型
拆箱:就是将引用类型转换为值类型。
拆箱或者装箱的两种类型必须具有继承关系
6、new
1)创建对象
2)隐藏从父类继承过来的成员
7、interface接口
1)表示一种能力,可以实现多态,,父类在前,接口在后
2)接口中成员不能有任何的修饰符,默认为public
3)接口中只能包括方法(属性、事件、索引器)
8、自动属性
自动属性是不对字段进行逻辑验证的操作
9、字符串
1)不可变性
2)字符串可以看做是char类型的只读数组
string.IsNullOrEmpty(st1): true/false 判断是""或null
s.ToCharArray 转成字符数组(可写了),再new string(chs)
s.Substring() 截取某段字符串
s.Split(new Char[{',','/'},StringSplitOptions.Rem..)
s.Join("|",数组);
3)null没有分配空间,不是对象(==)
""分配了空间,已经实例化(equals)
10、StringBuilder
1)当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作
2)StringBuilder仅仅是拼接字符串的工具,大多数情况下还需要把StringBuilder转换为String.
11、集合
ArrayList
Hashtable
List<T>
Dictionary<TKey,TValue>
12、Person p1=new Person();
p1.Name="张三";
Person p2=p1;
p2.Name="李四"; //最后p1,p2都是李四,p1p2都指向堆中同个地方
13、显式转换
1)(int)变量名,数字类型long->int
2)int.Parse(string类型),
3)int.TryParse(string s,out int result),
4)Convert.Toint32(),还可将其他类型转换成int,同强制转换一样,不能用来处理char类型,否则传回的是ASCII代码。
Object => 已知引用类型 ,使用as操作符来完成
Object => 已知值类型,先使用is操作符来进行判断,再用类型强转方式进行转换
14、结构和类
1)类当中写了一个新的构造函数之后,默认的无参数的就被干掉了。但是在结构中,写了一个新的构造函数之后,默认的那个无参数的还在。
在结构的构造函数当中,必须给所有的字段赋值。
只能有两个构造函数,一个是默认的无参数的构造函数,一个是全参数的构造函数。
2)结构的new关键字只干了一件事儿,就是调用结构的构造函数,在栈中开空间。
3)如果不给结构创建对象的话,不允许调用结构中的非静态方法。
4)Convert.Toint32(),还可将其他类型转换成int,同强制转换一样,不能用来处理char类型,否则传回的是ASCII代码。
Object => 已知引用类型 ,使用as操作符来完成
Object => 已知值类型,先使用is操作符来进行判断,再用类型强转方式进行转换
15、结构和类
1)类当中写了一个新的构造函数之后,默认的无参数的就被干掉了。但是在结构中,写了一个新的构造函数之后,默认的那个无参数的还在。
在结构的构造函数当中,必须给所有的字段赋值。
只能有两个构造函数,一个是默认的无参数的构造函数,一个是全参数的构造函数。
2)结构的new关键字只干了一件事儿,就是调用结构的构造函数,在栈中开空间。
3)如果不给结构创建对象的话,不允许调用结构中的非静态方法。
16、File读数据都是一次性读进去,对内存消耗比较严重
Directory操作目录的
1)GetFiles获取指定文件夹下文件的全路径
FileStream操作字节的
StreamReader操作字符的
17、序列化和反序列化
//要将序列化对象的类 标记为可以被序列化的,序列化成二进制
1)[Serializeble],Binarymatter的Serialize
2)Deserialize反序列化