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

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

    發布時間: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類型了。 查看本文來源

    雙氯芬酸鈉能長期吃嗎
    晉城哪個醫院治療白癜風最好
    米諾地爾能治脫發嗎要用多久
    猜你會喜歡的
    猜你會喜歡的
    主站蜘蛛池模板: 青草国产精品久久久久久| a级毛片高清免费视频在线播放| 正在播放暮町ゆう子在线观看| 国产丝袜一区二区三区在线观看| 777精品成人影院| 男女下面进入拍拍免费看| 国产成人精品午夜二三区波多野| gay精牛cum| 日本中文字幕在线精品| 亚洲日本一区二区三区在线不卡| 美国十次啦导航网| 处女的诱惑在线观看| 久久一日本道色综合久| 欧美另类老少配hd| 免费成人在线电影| 这里是九九伊人| 天堂а√在线最新版在线| 久久久精品2019中文字幕之3| 欧美日韩中文国产一区| 午夜在线社区视频| 高清粉嫩无套内谢2020| 嫩草视频在线免费观看| 久久精品中文字幕第一页| 欧美视频一区二区三区在线观看| 国产成人亚洲精品大帝| 99久久久久久久| 成人au免费视频影院| 久久午夜无码鲁丝片直播午夜精品| 欧美日韩国产手机在线观看视频| 免费真实播放国产乱子伦| 豪妇荡乳1一5白玉兰| 国产激情з∠视频一区二区| 中文乱码人妻系列一区二区| 极品丝袜老师h系列全文阅读 | 免费观看国产小粉嫩喷水| 视频在线一区二区| 国产无遮挡裸体免费视频在线观看| 一级毛片直播亚洲| 日本理论片午午伦夜理片2021| 亚洲中文字幕日产乱码高清app| 污污的小说片段|