因為在大學期間沒有真正意義的學習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();
}
這個關鍵字可以存很多的參數(shù)谷羞。
ref和out
這兩個關鍵字和C++的取地址符號的作用很像帝火,比如
c++: void doubleNum(int &e);
c# : static void doubleNum(ref int e1) or static void doubleNum(out int e2)
但是,ref關鍵字中的e1必須經(jīng)過初始化湃缎,在函數(shù)中犀填,任何修改e1的行為都會改變e1,相當于傳遞“引用”參數(shù)這種感覺嗓违,和上面c++的作用差不多九巡,不過非常量的參數(shù)是不合法的,假設e1是 const int e1 = 1;這樣就是非法的靠瞎。
out的參數(shù)可以是未被初始化的比庄,如果參數(shù)被初始化且賦值,一般情況下那個值會丟失乏盐,并且在函數(shù)中是通過賦值的形式改變其參數(shù)的佳窑,比如e2 =1;這樣,假設一個函數(shù)是這樣的 static void doubleNum(out int x,out int y),那么是不允許x=y這種行為的父能。
補C#真麻煩神凑,好困 睡覺了