因为在大学期间没有真正意义的学习C#语言,我决定在这一段时间好好的了解并学习C#语言,今天看到了一些我以前没有见过的东西,拿出来分享一下
params
这个关键字很有趣,代码如下:
static int SumVals(params int[] vals)
{
int sum = 0;
foreach(int a in vals)
{
sum += a;
}
return sum;
}
static void Main(string[] args)
{
int[] a = {1,3,5,7};
int sum = SumVals(a);
Console.WriteLine("Summed Values = {0}", sum);
Console.ReadKey();
}
这个关键字可以存很多的参数。
ref和out
这两个关键字和C++的取地址符号的作用很像,比如
c++: void doubleNum(int &e);
c# : static void doubleNum(ref int e1) or static void doubleNum(out int e2)
但是,ref关键字中的e1必须经过初始化,在函数中,任何修改e1的行为都会改变e1,相当于传递“引用”参数这种感觉,和上面c++的作用差不多,不过非常量的参数是不合法的,假设e1是 const int e1 = 1;这样就是非法的。
out的参数可以是未被初始化的,如果参数被初始化且赋值,一般情况下那个值会丢失,并且在函数中是通过赋值的形式改变其参数的,比如e2 =1;这样,假设一个函数是这样的 static void doubleNum(out int x,out int y),那么是不允许x=y这种行为的。
补C#真麻烦,好困 睡觉了
网友评论