|
回顧C#發展的歷史,C#1.0完全是模仿Java,并保留了C/C++的一些特性如struct,新學者很容易上手;C#2.0加入了泛型,也與Java1.5的泛型如出一轍;C#3.0加入了一堆語法糖,并在沒有修改CLR的情況下引入了Linq,簡直是神來之筆,雖然很多項目出于各種各樣如性能之類的原因沒有采用,但非常適合小型程序的快速開發,減輕了程序員的工作量,也提高了代碼的可讀性;C#4.0增加了動態語言的特性,從里面可以看到很多Javascript、Python這些動態語言的影子。雖然越來越偏離靜態語言的道路,但從另一個角度來說,這些特性也都是為了提高程序員的生產力。至于被接受與否,還是讓時間來說話吧。
PS:這里面還有一點版本號的小插曲——VS2008所對應的.NET Framework是3.5,C#是3.0,CLR是2.0,及其混亂,MS終于下決心在VS2010中把這三個版本號都統一成了4.0,于是CLR3不知所終……
Dynamically Typed Object
C#4.0加入了dynamic關鍵字,可以申明一個變量的static類型為dynamic(有點繞口)。
在3.0及之前,如果你不知道一個變量的類型,而要去調用它的一個方法,一般會用到反射:
object calc = GetCalculator();Type calcType = calc.GetType();object res = calcType.InvokeMember("Add",BindingFlags.InvokeMethod, null,new object[] { 10, 20 });int sum = Convert.ToInt32(res);
NET技術:C# 4.0下的新特性,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。