原創|其它|編輯:郝浩|2009-05-19 13:58:36.000|閱讀 562 次
概述:從這篇blog開始真正開始關心3.0里面的特性,本篇主要介紹下Var關鍵字與擴展方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本篇主要介紹下 Var 關鍵字與擴展方法。 從這篇 blog 開始真正開始關心 3.0 里面的特性。
定義方式 C#3.0 中為我提供了 var 關鍵字來定義隱式化的局部變量。:
var i =0; var myBool =true; var myStr ="Henllyee";
編譯器會根據初始化變量的變量值來推斷變量的數據類型,其實在使用 var 關鍵字時。可以通過 IL 來看下上面幾句代碼在編譯之后的表示:
所以 var 關鍵字在實質上并沒有改變什么。 foreach 字句中也可以使用 var 關鍵字如 可以清楚的看到編譯器會根據值來推斷變量的類型。:
1 隱式類型變量定義時必需要定義初始值;
2 不能用 null 來初始化;
3 不能使用 var 作為方法的返回值或則參數類型;
4 不能用 var 定義類的成員;
定義工作就已經結束了一般的時候我要添加新的方法的時候,當一個類型被定義好了之被編譯進一個程序集后。只能去修改代碼重新編譯(也可以通過反射機制去修改) C#3.0 里面為我提供了擴展方法這樣東西。當我需要為某個類型添加功能,但又沒有源代碼的時候,擴展方法是比較好的選擇。下面我來對 object 類型定義一個擴展方法 :
定義一個擴展方法時要注意三點 :
也就是說方法也必須是靜態的 1 必需把方法定義在靜態類中。
2 所有的方法的第一個參數必需加上 thi 關鍵字;
或則通過靜態類調用。 3 擴展方法的調用只能在內存中的實例中調用。
上面的擴展方法就是通過放射機制觀察 object 所在類型以及順序集。可以看下一個調用的示例 :
staticvoid Main string[] arg { DataSet ds =new DataSet ; Console.Writ ds.DisplayDefinigAssembl ; Console.Read ; }
要注意的一點, < 要注意的一點。擴展方法在 thi 后面緊接著的要擴展的類型。擴展方法除了第一個方法外,其他參數就跟定義一般的方法一樣。
但是需要注意的一點就是所在命名空間,上面的例子中我將方法定義在一個名為 MyExtens 類里面。如果我命名空間不是 System 那么我要讓 object 類型使用到此方法,就需要每次導入命名空間。這顯然不是一種好的方式,所以一般定義擴展方法時建議 將所在類的放在目標的類型命名空間下。 下面我看一個完整的例子:
HenllyeeExtensions.cs:
調用的示例 :
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園