這裡要說的是var。var是C#3.0中提供的用於聲 明變量的關鍵字,開發人員可以不考慮變量的類型就可以對變量進行聲明(這一 點用法非常類似Javascript)。但是兩者還是有些差異。
相同點:用var 來聲明任何類型的局部變量。
不同點:它僅僅負責告訴編譯器,該變量 需要根據初始化表達式來推斷變量的類型,而且只能是局部變量。
我們 可以這樣聲明變量:
var i= 10;
var name = "edisundong";
var numbers = new int[] { 1, 2, 3 };
var僅僅是個關鍵字,它並不是C#3.0中的一種新的類型,而是負責告訴 編譯器,該變量需要根據初始化表達式來推斷變量的類型,上面的語句相當於
int i= 10;
string name = " edisundong ";
int[] numbers = new int[] { 1, 2, 3 };
這裡還需要注意幾 點:
1.在聲明時必須同時賦值。
2.在使用var聲明一個局部變量 後,他仍然具備強類型。
var integer = 10;
integer = " edisundong ";
編譯時會報Cannot implicitly convert type string to int錯誤。
3. 初始化器表達式的編譯期類型不能夠是空 (null)類型。
4. var的聲明僅限於局部變量
擴展方法
以 前如果我們想擴展一個類的功能必須直接源自於它並且從學其中的方法,在 C#3.0中,介紹了一種很快捷的擴展功能的方法。
public static class StudentExtensionMethods
{
public StudentExtensionMethods()
{
//
//TODO: 在此處添加構造函數邏輯
//
}
public static string GetStudentInformation(this Student stu)
{
return string.Format ("Name: {0} {1} Age: {2}", stu.StuName,
stu.StuAge, stu.StuClass);
}
}
定義一個類,其中定義一個方法,注意:這個類和方法都是 static的,並且方法的參數是類Student。這樣,Student類就可以擴展 GetStudentInformation方法:
Student stu2 = new Student
{
StuName = "Brian",
StuAge = "12",
StuClass = "1 班"
};
Console.WriteLine(stu2.GetPersonInformation());
小結:初 學了下C#3.0,感覺帶來了不少驚喜,其中有很多新的特性是以前所未知的。C#3.0的新特性應該還不止這些,還需繼續學習研究。