本文將向大家介紹一下在C#3.0中實現隱式類型變量、匿名類型的方法,希望對大家有所幫助。
隱式類型變量 (Implicitly typed local variables)
象下面的代碼書寫就是隱式類型變量
以下為引用的內容:
var i = 5;
var str = “Csharp”
var numbers = new int[]{1,2,3};
var orders = new System.Collections.Hashtable();
var orders1 = new Dictionary();
var i = xxx ; 的作用就是用 xxx 的類型聲明為i的類型。並給i 賦值。
由於聲明時候,需要依賴於等號右邊的表達式,所以必須同時賦值。否則下面的書寫就會報錯誤: Error Implicitly typed locals must be initialized
var gg;
使用 Implicitly typed local variables 時應遵守下列約束:
1. The declarator must include an initializer
聲明時必須包含初始化器。
2、The initializer must be an expression. The initializer cannot be an object or collection initializer by itself, but it can be a new expression that includes an object or collection initializer.
初始化必須是一個表達式。初始化表達式不能包含它自身,
但是可以是包含一個對象或集合初始化器的一個new表達式(即匿名類型)。
3、The compile-time type of the initializer expression cannot be the null type.
初始化器表達式的編譯期類型不可以是空(null)類型。
比如:
var gg = null; 這行代碼就會報錯誤: Cannot assign ’’ to an implicitly typed local
4、If the local variable declaration includes multiple declarators, the initializers must all have the same compile-time type.
如果局部變量聲明包含了多個聲明符,這些聲明符必須具備同樣的編譯期類型。
比如如下代碼:
以下為引用的內容:
var n = "java"
var m = 4;
var ff = m + n;
Console.WriteLine(ff);
Console.WriteLine(ff.GetType());
打印出來的信息會是:
4.java
System.String
5. The initializer cannot refer to itself. (初始化中不能提起它自身)
隱式類型變量的使用范圍,它可不是到處能用。僅僅可以用於下面四種情況
1. 局部變量聲明
2. for 語句中變量聲明)
3. using 語句初始化變量時.
4. foreach 中iterator類型聲明)