.net framework中引進(jìn)的var對象類型聲明
一、神奇的var
在C#3.0中增加了一個變量聲明var,這個聲明和JavaScript 的 var類似,但也有不同。
1.相同點(diǎn),他能夠用var來聲明任何類型的局部變量。
2.不同點(diǎn),他僅僅負(fù)責(zé)告訴編譯器,該變量需要根據(jù)初始化表達(dá)式來推斷變量的類型,而且只能是局部變量。
二、相同點(diǎn)
他能夠聲明:
var integer = 10;
var name = "edisundong";
var numbers = new int[] { 1, 2, 3 };
三、不同點(diǎn)
var僅僅是個關(guān)鍵字,他并不是C#3.0中的一種新的類型,而是負(fù)責(zé)告訴編譯器,該變量需要根據(jù)初始化表達(dá)式來推斷變量的類型,上面的語句相當(dāng)于:
int integer = 10;
string name = " edisundong ";
int[] numbers = new int[] { 1, 2, 3 };
四、注意點(diǎn)
1.在聲明時必須同時賦值,因?yàn)槁暶饕蕾囉谫x值號右邊的表達(dá)式,假如有下面的語句:
var integer;
integer = 10;
編譯時會報(bào)Implicitly typed locals must be initialized錯誤。
2.在使用var聲明一個局部變量后,他仍然具備強(qiáng)類型,能夠做如下測試:
var integer = 10;
integer = " edisundong ";
編譯時會報(bào)Cannot implicitly convert type string to int錯誤。
3. 初始化器表達(dá)式的編譯期類型不能夠是空(null)類型,編譯器無法根據(jù)null來推斷出局部變量的類型,如有下面的語句:
var integer = null;
編譯時會報(bào)Cannot assign <null> to an implicitly typed local錯誤。
4. 初始化語句必須是個表達(dá)式,初始化表達(dá)式不能包含他自身,但是能夠是包含一個對象或集合初始化器的一個new表達(dá)式(即匿名類型)。 如能夠這樣去聲明:
var coll = new Hashtable();
5. var的聲明僅限于局部變量,也能夠包含在foreach、for、using語句中。下面的使用是錯誤的:
class Program
{
private var i = 10; //全局私有變量。
static void Main(string[] args)
{ }
}
編譯時會報(bào)The contextual keyword var may only appear within a local variable declaration錯誤。
相關(guān)文章
ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄
Gridview控件中并沒有提供像在FormView和DetailsView控件中那樣直接插入新記錄操作的支持。2008-11-11ASP.NET 計(jì)劃任務(wù)實(shí)現(xiàn)方法(不使用外接程序,.net內(nèi)部機(jī)制實(shí)現(xiàn))
在asp.net中要不使用其他插件的情況下只能使用定時器來檢查, 并執(zhí)行任務(wù).2011-09-091個文件如何輕松搞定Asp.net core 3.1動態(tài)頁面轉(zhuǎn)靜態(tài)頁面
這篇文章主要給大家介紹了關(guān)于如何通過1個文件輕松搞定Asp.net core 3.1動態(tài)頁面轉(zhuǎn)靜態(tài)頁面的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Asp.net core 3.1具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05在ASP.NET2.0中通過Gmail發(fā)送郵件的代碼
我們有時候需要發(fā)送郵件給訪問網(wǎng)頁的用戶,例如,注冊的時候,發(fā)一確認(rèn)信什么的。那么,在ASP.NET2.0中該如果操作呢?2008-06-06.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件XRPC詳解
這篇文章主要給大家介紹了關(guān)于.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件XRPC的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用.net core具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05在vs2008中使用AJAX開發(fā).net 2.0下的Web程序的方法
最近做項(xiàng)目需要用到AJAX,但是工作需要必須使用.net 2.0版本;但發(fā)現(xiàn)如果項(xiàng)目為.net2.0版本則沒有Ajax(web.config已經(jīng)配置上ajax) ,、工具欄中并不出現(xiàn)Ajax選項(xiàng)卡. 而且新建頁面也沒有AJAX頁面;后來查了很多資料 發(fā)現(xiàn)了一種解決方法2011-06-06.net decimal保留指定的小數(shù)位數(shù)(不四舍五入)
大家都知道decimal保留指定位數(shù)小數(shù)的時候,.NET自帶的方法都是四舍五入的。那么如何讓decimal保留指定位數(shù)小數(shù)的時候不四舍五入呢,下面通過這篇文中的示例代碼來一起看看吧。2016-12-12asp.net SAF 中緩存服務(wù)的實(shí)現(xiàn)
對緩存的興趣源于張子陽寫的一篇文章《SAF 中緩存服務(wù)的實(shí)現(xiàn)》中的一個例子:2008-08-08ASP.NET中實(shí)現(xiàn)jQuery Validation-Engine的Ajax驗(yàn)證實(shí)現(xiàn)代碼
在jQuery的表變驗(yàn)證插件中Validation-Engine是一款高質(zhì)量的產(chǎn)品,提示效果非常精美,而且里面包含了AJAX驗(yàn)證功能2012-05-05