1.readonly关键字可使变量在运行时不能被修改。static readonly与const的区别在于readonly是在运行时不能被改变,而const是在编译时进行替换。但在实际运用中,两者的作用效果是一样的。此外,readonly只能作用于域,而不能用于方法内的局部变量。
2.C++中可以在方法中使用static声明静态变量,将这个变量的状态记录下来,但在C#中却不能这样做。
3.C#中使用‘ref’关键字声明引用变量。在定义方法和调用方法时都需要加上ref关键字。在调用方法时,该方法的栈中存储的是一个指向原变量的引用。除了‘ref’之外还有‘out’关键字也可以声明引用变量,它们编译成的中间文件是相同的。不同的是,使用‘ref’时,变量必须已经被初始化,而‘out’则不需要。
4.当传给一个方法的参数是引用类型,如数组或者类的实例,将会把这个引用复制到方法调用时分配给该方法的栈中,所操作的数据其实是同一份。
5.在数组类型参数的前面加上‘params’关键字,在调用时可以直接传入该与数组相同类型的多个参数,调用时会自动将这些参数组成一个数组。方法中只可能有一个参数带有‘params’关键字,而且必须是最后一个,否则将会造成混淆。
6.如果需要手动编写处理异常方法并忽略CLR自身的异常处理方法的话,便将有可能出现异常的语句放在try语句块中,后面带‘catch’关键字对异常进行处理。
7.在处理异常时最后一个catch块最好是针对一般异常的,即类似于switch中的default一样。
8.catch最后还可以再加一个‘finally’关键字,无论程序是否出现了异常,finally块中的代码都将在最后被执行。当try或catch块中含有return语句来终止所在函数的运行时,finally块内的语句仍会执行。通常来说,finally中的语句是用来处理结束后的一些操作,比如文件的关闭。
9.可以使用‘throw’关键字抛出错误,被抛出的数据类型必须是Exception类或者是继承Exception类的。