在.NET 3.0後微軟引入了隱式類型var,編譯器能夠自動判斷變量的類型,經過var這個隱式類型,能夠提升開發人員的開發效率,不少時候能夠不考慮對象的類型,編譯器會自動幫咱們判斷函數
使用隱式類型和使用其餘顯式類型的效果是同樣的,只是在編譯的過程IDE自動判斷類型,因此不少時候咱們不用考慮變量的具體類型工具
class Program { static void Main(string[] args) { var str = "aaa"; var i = 15; var obj = new { Name = "10", Age = 15 }; str.ToString(); i.ToString(); } }
編譯完,IDE會自動的把var換成string,int,而第三個,在編譯的時候會自動生成一個匿名的類,obj是一個類的對象,能夠經過Reflector反編譯工具查看到spa
在使用隱式類型var的時候,須要遵循幾個規則3d
1)var類型的值必須是局部變量或靜態變量code
2)var變量在聲明以前必須被初始化對象
3)變量的值不能爲null(這樣編譯器就不能判斷類型了)blog
4)var變量不能爲一個方法或方法組開發
5)不能用來聲明參數類型編譯器
class Program { int num = 15; static void Main(string[] args) { string str; //不能使用爲初始化的變量 //var s = str; //不能引用字段,只能是局部變量或靜態變量 //var n = num; //var變量值不能爲null //var s = null; //不能用函數返回值賦值 //var s = Add(10, 15); } //不能用做方法參數類型 //public int Add(var a, var b) public int Add(int a, int b) { return a + b; } }