麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

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

2023-05-09 18:58:32
字體:
來源:轉載
供稿:網友

  首先說明一下,此新特性的專題基于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 Dictionary<int, Order>();

  其實上面的聲明方法和之前在1.x和2.x中以下的聲明方法是等效的:
 

int i = 5;
string s = "Hello";
double d = 1.0;
int[] = new int[] {1, 2, 3};
Dictionary<int, Order> orders = new Dictionary<int, 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) Console.WriteLine(n);

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 激情久久精品 | 免费在线观看成人网 | 国产午夜电影在线观看 | 日韩视频―中文字幕 | 欧美成人一区二区三区 | 精品亚洲一 | 日韩黄网站 | 欧美一区二区三区免费不卡 | 久久久中精品2020中文 | 免费h片 | 国产精品久久久久久模特 | 吾色视频 | 在线日韩av电影 | 欧美黄一区 | 国产亚洲美女精品久久久2020 | 免费男女视频 | 国产18视频| 国产精品免费一区二区 | 一区二区三区视频播放 | 九九热精品在线播放 | 日本aⅴ在线 | 在线成人精品视频 | 羞羞的视频在线观看 | 精品国产乱码一区二区三区四区 | 黄色片免费在线 | 深夜毛片免费看 | a免费视频 | 黑人三级毛片 | 特级黄aaaaaaaaa毛片 | 91社区电影 | 色污视频在线观看 | 福利在线免费 | 国产呻吟 | 欧美顶级毛片在线播放小说 | 久久色播| 久久精品成人 | 99激情视频| 蜜桃网在线观看 | 日韩一级电影在线观看 | 91av久久 | 有兽焉免费动画 |