程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#的一些知識點,

C#的一些知識點,

編輯:C#入門知識

C#的一些知識點,


  • 不能將屬性以ref或out的方式傳遞

看上去屬性和字段差不多,可是屬性本質上是個方法,並不是真正指向一個內存位置,所以不能像字段那樣能以ref或out方式傳遞。

 

匿名類型的屬性是衹讀的

 

原生的值類型調用ToString方法是不會裝箱的

比較"Age = " + 3.ToString()和"Age = " + 3,前者要比後者高效,因爲後者默認會裝箱。所以值類型涉及字符串操作時,應該總是使用ToString方法

 

類型的協變和逆變

衹有接口和委托才能聲明這兩個特性,汎型類是不支持的(出於類型安全的考慮)。

協變用out來修飾,針對的是返回值,潛臺詞是:如果能返回父類,自然也能返回子類。

// Covariance.

IEnumerable<string> strings = new List<string>();

IEnumerable<object> objects = strings;

逆變用in來修飾,針對的是參數,潛臺詞是:如果能傳入父類,自然也能傳入子類。

// Contravariant.

IComparer<object> objects = objectComparer;

IComparer<string> strings = objects;

   

dynamic類型可以隱式轉換爲其它類型,object則不行

如:dynamic d = 1; int i = d;

編譯器認爲dynamic上的任何操作都是合法的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved