对于C#中几个关键词老是容易搞混淆,在于记录一下

一 out
out 关键字可以将值类型转换成引用类型,带入到方法中,并进行返回。
static void Main(string[] args)
{

        Test2(out int b);
        Console.WriteLine(b);

        Console.ReadKey();

    }
    static void Test2(out int b)
    {
        b = 2;
    }

            最后得出结果为:2;

二 ref
ref 关键字与out相类似,区别在于ref被带入到方法中取时,需要在函数外进行定义初始化

     static void Main(string[] args)
    {
        int a=0;
        Test(ref a);

        Console.WriteLine(a);
        Console.ReadKey();

    }

    static void Test(ref int a)
    {
        a += 5;

    }
            最后结果为:5

三 params
params主要用在给函数传参数,函数的方法不固定的的时候用。在函数中使用params 需要掌握以下几点:
(1)若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后;   

(2)参数数组必须是一维数组;   

(3)不允许将params修饰符与ref和out修饰符组合起来使用;   

(4)与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量;   

(5)若实参是数组则按引用传递,若实参是变量或表达式则按值传递。   

(6)用法:可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组,

四 extern
修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非

托管代码时与 DllImport 属性一起使用;在这种情况下,该方法还必须声明为 static,如下面的示例所示:[DllImport("avifil32.dll")]
private static extern void AVIFileInit();