您的位置: 旅游網 > 八卦 >> 花花公子

    新特性之隱式類型局部變量的使用

    發布時間:2021-10-26 07:19:50

    首先說明一下,此新特性的專題基于MS五月份分布的C#3.0規范,但是官方中文版還沒有出來,結合自己的實踐和理解,希望能和大家一起分享某些前沿的東東,很有可能一些地方會出錯,望拋磚。

    在C# 3.0里面, 可以對局部變量進行隱式類型聲明, 就是在聲明時可以不指定該變量的類型, 變量在初始化的時候會由編譯器從表達式的上下文中推出真正的類型, 對開發者來說, 無疑是簡化了很多, 主要是通過新的關鍵字var, 有如下面的例子:

    var i = 5;

    var s = \"Hello\";

    var d = 1.0;

    var numbers = new int[] {1, 2, 3};

    var orders = new Dictionaryint, Order();

    協助對抗病毒蔓延。 其實上面的聲明方法和之前在1.x和2.x中以下的聲明方法是等效的:

    int i = 5;

    string s = \"Hello\";

    double d = 1.0;

    int[] = new int[] {1, 2, 3};

    Dictionaryint, Order orders = new Dictionaryint, Order();

    方便是絕對的, 就像我們之前在某些別的高級語中, 早就實現了此功能, 但是對某局部變量進行隱式類型聲明, 也要遵循一定的條件限制:

    - 聲明變量時, 必須對該變量進行初始化.

    - 初始化該變量時, 必須使用對應的表達式, 而不能簡單地用一個對象或是集合本身, 但如果是使用了關鍵字new創建的對象或是集合卻是合法的, 因為那已經是一個表達式了.

    - 變量初始化的表達式在編譯時, 絕對不可以是null類型.

    - 如果將要進行隱式類型聲明的局部變量包含多個聲明, 則要保證每個初始化表達式都有相同的編譯時類型, 保持類型一致, 不能一會是int, 一會又變成了int[].

    下面我們來看幾個有誤的聲明例子:

    例子1:

    var x; //聲明變量時沒有初始化

    例子2:

    var y = {1, 2, 3}; //集合本身不能作為初始化表達式

    例子3:

    var z = null; //編譯時類型不允許為null

    在現行的Orcas編譯環境下, 可以使用var聲明局部變量, 同時也向后兼容, 即原來的方式是可用的. 另外, 根據MS官方的文檔說來, var聲明適用于for語句的初始化表達式中, 在using語句中資源獲得時也可用, 舉個例子可以在foreach語句中的迭代變量應用var:

    var numbers = int[] { 1, 3, 5, 7, 9};

    foreach(var n in numbers) iteLine(n);

    不過這樣用的前提要求該集合類型必須可以枚舉, var就可以自動被編譯器認作int類型了。 查看本文來源

    雙氯芬酸鈉能長期吃嗎
    晉城哪個醫院治療白癜風最好
    米諾地爾能治脫發嗎要用多久
    猜你會喜歡的
    猜你會喜歡的
    主站蜘蛛池模板: 国产色丁香久久综合| 日韩欧美一区二区三区| 四虎永久免费影院| 2022国产成人福利精品视频| 女大学生的沙龙室| 久久久亚洲欧洲日产国码二区 | 欧美高清在线视频在线99精品| 国产va免费精品高清在线观看| 1000部拍拍拍18勿入免费视频软件 | 久久er99热精品一区二区| 黑人太粗太深了太硬受不了了| 日本三级韩国三级欧美三级| 八木梓纱老师三天两夜| 国产鲁鲁视频在线播放| 國产一二三内射在线看片| 中文字幕专区在线亚洲| 日韩精品一区二区三区在线观看| 亚洲欧美日韩精品专区| 粉嫩小仙女脱内衣喷水自慰 | 欧美成人久久久| 伊人热热久久原色播放www| 色悠久久久久久久综合网| 国产无遮挡又黄又爽在线视频 | 夜夜躁狠去2021| 东北疯狂xxxxbbbb中国| 日韩avwww| 亚洲av网址在线观看| 污污污污污污www网站免费| 动漫小舞被吸乳羞羞漫画在线| 野花高清在线观看免费完整版中文 | xxxxx做受大片视频| 在线观免费看高清影视剧 | 波多野结衣女上司| 免费能直接在线观看黄的视频 | 97国产在线视频| 女人体a级1963免费| 中国大陆一级毛片| 日本护士XXXXHD少妇| 九位美女尿撒尿11分钟| 欧美性xxxxx极品娇小| 亚洲精品成人片在线观看精品字幕 |