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前面即可。