1。#region和#endregion关键字。定义可以展开和折叠的代码区域的开头和结尾,相当于obj-c中的#pragma mark。

 

2。ref关键字。使用ref关键字指定函数参数,可以在函数中直接改变变量的值。调用有该关键字修饰参数的函数,必须使用非常量变量,而且变量必须先初始化。

static void ShowDouble (ref int val) {

  val *= 2;

  Console.WriteLine("val = {0}",val);

}

在函数调用中必须再次指定它(ref 参数是函数签名的一部分):

int number = 5;

Console.WriteLine("number = {0}",number);

ShowDouble (ref number);

Console.WriteLine("number = {0}",number);

输出如下:

number = 5

val = 10

number = 10

 

如果将上述代码段的“int number = 5;”改为:“const int number = 5;”或“int number;”都是错误的。

 

3、out关键字。使用方式与ref关键字相同,区别:把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数;在使用out参数时,out参数必须看做未赋值的。