簡介
C# 是創新性的新式編程語言,它巧妙地結合了最常用的行業語言和研究語言中的功能。在保持 C# 設計思想不變的同時,Microsoft 在 C# 語言中引入了幾種潛在的新功能,提高了開發人員在語言構造方面的效率。
Microsoft C#
自 2001 年 2 月 C# 問世以來,很多開發人員已經開始使用 C# 編程語言來構建軟件。而 Microsoft 自身也使用 C# 構建了幾種正式的應用程序,包括 .Net Framework、MSN Web 屬性和 Tablet PC SDK。由此可見,C# 是一種適用於構造高品質商業軟件的語言。
C# 語言中的許多功能是基於以下四種不同設計目標而創建的:
• 統一的類型系統以及簡化值類型和引用類型在 C# 語言中的用法。
• 通過 XML 注釋、特性、屬性、事件和委托等功能建立基於組件的設計。
• 借助 C# 語言的獨特功能(包括安全的指針操作、溢出檢查等)建立實用的開發人員控制功能。
• 建立諸如 foreach 和 using 語句這樣的實用語言構造,提高開發人員的效率。
在 C# 語言的“Visual Studio for Yukon”版本中,Microsoft 計劃通過將廣泛的研究語言和行業語言中的各種功能結合在一起建立一種簡潔、實用的語法。這些語言功能包括泛型、迭代程序、匿名方法和局部類型。
潛在的未來功能
實際上,C# 的未來創新功能主要基於統一的類型系統、基於組件的開發、開發人員控制功能和實用的語言構造。下面總結了 Microsoft 計劃在 C# 語言的下一個主要版本中提供的四種主要的新功能。這些功能的設計尚未完成,Microsoft Corporation 歡迎廣大的開發人員針對這些功能發表評論。
泛型
隨著項目變得越來越復雜,程序員日益需要一種方法來更好地重復使用和自定義他們現有的基於組件的軟件。為了實現在其他語言中重復使用高級代碼,程序員通常要使用一種名為“泛型”的功能。C# 將包括一種安全且高效的泛型,它與 C++ 中的模板和 Java 語言中提出的泛型在語法上只是稍有差別,但在實現方式上卻存在很大差別。
生成最新的泛型類
利用目前的 C#,程序員可以通過在基本對象類型的實例中存儲數據來創建有限形式的真正泛型。由於在 C# 中每個對象都是從基本對象類型繼承的,再加上統一 .Net 類型系統的裝箱和取消裝箱功能,程序員可以將引用類型和值類型存儲到對象類型的變量中。但是,對於引用類型、值類型與基本對象類型之間的轉換,還有一些性能缺陷。
為了說明這一點,以下代碼示例創建了一個簡單的 Stack 類型,其中包含兩個操作“Push”和“Pop”。Stack 類將其數據存儲在對象類型的數組中,Push 和 Pop 方法使用基本對象類型來接受和返回數據:
public class Stack
{
private object[] items = new object[100];
public void Push(object data)
{
...
}
public object Pop()
{
...
}
}
然後,就可以將自定義類型(例如 Customer 類型)壓入堆棧。但是,如果程序需要檢索數據,則需要將 Pop 方法的結果(基本對象類型)顯式轉換成 Customer 類型。
Stack s = new Stack();
s.Push(new Customer());
Customer c = (Customer) s.Pop();