C#是区分大小写的语言,大小写不正确会导致编译不成功(在Unity中要注意文件名和类名需要一致)


C#关键字

关键字
abstractasbaseboolbreakbytecasecatch
char checked class const continue decimal default delegate
do double else enum event explicit extern false
finally fixed float for foreach goto if implicit
in int interface internal is lock long namespace
new null object operator out override params private
protected public readonly ref return sbyte sealed short
sizeof stackalloc static string struct switch this throw
true try typeof uint ulong unchecked unsafe ushort
using virtual void volatile while
add* (1) alias* (2) ascending* (3) async* (5) await* (5) by* (3) descending* (3) dymamic* (4)
equals* (3) from* (3) get* (1) global* (2) group* (3) into* (3) join* (3) let* (3)
nameof* (6) on* (3) orderby* (3) partial* (2) remove* (1) select* (3) set* (1) value* (1)
var* (3) where * (2) when* (6) yield* (2)

*表示上下文关键字,括号中的数字代表加入该上下文关键字的C#版本。

C#1.0之后没有引入任何新的保留关键字,但在后续版本中,一些构造使用了上下文关键字(contextual keyword),它们在特定位置才有意义。除了那些位置,上下文关键字没有任何特殊意义。“这样,大多数的C#1.0代码都完全兼容于后续的版本。

可以使用@关键字 作为标志符 @return(){}


标识符

类名函数名这些程序员定义的名称称为标志符,标志符应当简洁而有意义。


标志符风格

Pascal大小写风格:标志符中的每个单词的首字母都大写
camelCase(驼峰大小写风格):第一个单词首字母小写,剩下的单词的首字母都大写
规范:

要把只包含两个字母的首字母缩写词全部大写,除非它是驼峰大小写风格标识符的第一个单词。
包含3个或更多字母的首字母缩写词,仅第一个字母才要大写,除非该缩写词是驼峰大小写风格标识符的第一个单词。
在驼峰大小写风格标识符开头的首字母缩写词中,所有字母都不要大写。
不要使用句牙利命名法(也就是,不要为变量名称附加类型前缓)。
要用名词或名词短语命名类。
要为所有类名使用Pascal大小写风格。
要为局部变量使用camel大小写风格的命名。

字符串不可变

字符串赋值之后,每次更改都会重新开辟内存,指向新的引用

API 应用程序接口的简称 例如 类提供的交互 (方法) 一个程序集里包含的所有类型以及成员构成这个程序集的API


托管执行和公共语言基础结构

处理器不能直接解释程序集,采用的是公共中间语言(Common Interrmediate Language, CIL),C#编译器将c#源码转换成这种中间语言,为了将CIL代码转换成处理器能理解的机器码,还要完成一个额外的步骤(通常在执行时进行)。虚拟执行系统(Virtual Execution System,VES),VES偶尔称为"运行时",它根据需要编译CIL代码,这个过程称为即时编译或者额JIT编译。加入代码在像"运行时"这样的一个"代理"的上下文执行,就将这些代码称为托管代码,而在运行时的控制下执行的过程称为托管执行。之所以称为托管代码,是因为"运行时"管理着诸如内存分配,安全性和JIT编译等方面.执行过程中不需要运行时的代码称为本机代码或非托管代码
VES规范被包含在一个包容面更广泛的规范---CLI(Common Language Infrastructure,公共语言基础)

CLI包含了这几方面的规范

  • VES或“运行时”。
  • CIL。
  • 为语言互操作性提供支持的类型系统,称为公共类型系统(Common Type Systcm,CTS)。
  • 如何编写能通过CLI兼容语言访问的库的指导原则,这部分内容放在公共语言规范(Common Language Specification,CLS)中。
  • 使各种服务能被CLI识别的元数据(包括程序集的布局或文件格式规范)。
  • 一个公共编程框架,称为基类库(Base Class Library,BCL),所有语言的开发者都能利用它。

ILDASM 可以将程序集或EXE反汇编成CIL

最后修改:2019 年 06 月 28 日 03 : 50 PM