C#高级编程笔记(一)

1、CLR(公共语言运行库)源码——》中间语言(IL)——》平台专用代码。

2、类型:值类型,引用类型。

值类型:内置值类型,枚举,用户自定义值类型。

引用类型:接口类型,指针类型,自描述类型(类类型(委托,用户自定义引用类型,装箱的值类型),数组)。

以上统称:通用类型系统(CTS)

3、语法:C#区分大小写,分号结束,注释//,/**/。

4、几乎所有C#程序都使用到System命名空间的类。

5、变量:避免多次赋值、多次定义相同的变量,注意注释,默认创建时,默认初始化值为0,方法的局部变量必须在代码中显式初始化,才可以使用它们的值。

6、常量:const 。

使用规则:

①常量必须在声明的时候初始化。

②常量的值值必须在编译时用于计算。

③常量总是静态的。(不需要包含修饰符static)。

使用好处:可使用缩写,提高可读性。使程序易于修改。避免错误。

7、getType()类型推断(type inference)使用var定义,即泛型。

规则:

①变量必须初始化,否则无依据。

②初始化容器不能为空

③初始化容器必须放在表达式中

④不能把初始化容器设置为一个对象,除非在初始化容器中创建了一个新的对象。

8、注意变量的作用域,避免作用域冲突。

9、值类型:

名称 CTS类型 说明 范围
整形
sbyte System.SByte 8位有符号的整数 -128~127()
short System.Int16 16位有符号的整数 -32768~32767()
int System.Int32 32位有符号的整数 -2147483648~2147483647()
long System.Int64 64位有符号的整数 -9223372036854775808~-9223372036854775807()
byte System.Byte 8位无符号的整数 0~255()
ushort System.Uint16 16位无符号的整数 0~65535()
uint System.Uint32 32位无符号的整数 0~429496795()
ulong System.Uint64 64位无符号的整数 0~18446744073709551615()
float System.Single 32位单精度浮点数 7位(float定义的时候,需要在后面加上“F”或者“f”)
double System.Double 64位双精度浮点数 15/16位
decimal System.Decimal 128位高精度十进制数表示法 定义的时候,需要在后面加上“M”或者“m”
bool System.Boolean true或false  
char System.Char   一个16位的(Unicode)字符
string System.String   (Unicode)字符串
object System.Object   根类型,其他类型均派生自它

10、Objcet的基本方法:Equals(),GetHashCode(),GetType()ToString(),Finalize(),MemberwiseClone()。

11、流控制语句:if {.....}else{.....},switch(){case :},for(){},do{....}while(),foreach(  in  ){},goto,break,continue,return,

12、枚举:enum,在后台将被实例化为派生于基类的System.Enum的结构,不会造成性能损失。

13、命名空间:using,可制定别名,例如:using  A=B,则别名为B。

14、C#,编译的类型:exe可执行程序,library,类库,module,组件,winexe,Windows窗体应用程序。

15、预处理器指令:#define,给定符号的定义,

#undef,取消符号的定义。

判断#if,#elif,#else,#endif,

警告及错误#warning,#error,

代码块定义:#region,#endregion,

#line,#pragma

16、引用参数ref,输出参数out。

17、C#在重载的限制:两个方法不能仅在返回类型上有区别。两个方法不能进根据参数是声明ref还是out来区分。

18、只读字段:readonly,如果只读字段设置为静态,需要显式声明。

19、public,private,protected,internal,abstract,sealed,new

20、静态构造函数,编写原因:在第一次使用类时候需要进行初始化。

注意点:静态构造函数没有修饰符,不带任何参数,无返回类型,以类名同名的方法,其他代码不调用它,在加载时候,有.NET运行库库调用。

静态构造函数只能访问类的静态成员,不能访问类的实例成员。

21、部分类:partial,放在class、struct、interface前面即可。

原文地址:https://www.cnblogs.com/diaosizhang/p/3077017.html