色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

了解 C# 4 中的 Dynamic 關(guān)鍵字

  dynamic 關(guān)鍵字和動(dòng)態(tài)語(yǔ)言運(yùn)行時(shí) (DLR) 是 C# 4 和 Microsoft .NET Framework 4 中的重大新增功能。 這些功能在宣布時(shí)就引起了人們的極大興趣,并伴隨著許多疑問(wèn)。 同時(shí)人們也給出了很多答案,但這些答案現(xiàn)在已散布于各種文檔以及各種技術(shù)博客和文章之中。 這樣,人們?cè)诟鞣N論壇和會(huì)議上總是一遍又一遍地提出相同的問(wèn)題。

  本文全面概述了 C# 4 中新增的動(dòng)態(tài)功能,并且深入探討了這些功能如何同其他語(yǔ)言和框架功能(例如反射或隱式類型化變量)一起使用。 鑒于已有大量信息可用,我有時(shí)會(huì)重新使用一些經(jīng)典示例,并提供指向原始源的鏈接。 我還將提供指向相關(guān)內(nèi)容的大量鏈接,供您進(jìn)一步閱讀。

  什么是“動(dòng)態(tài)”?

  編程語(yǔ)言有時(shí)可劃分為靜態(tài)類型化語(yǔ)言和動(dòng)態(tài)類型化語(yǔ)言。 C# 和 Java 經(jīng)常被認(rèn)為是靜態(tài)類型化語(yǔ)言的例子,而 Python、Ruby 和 JavaScript 是動(dòng)態(tài)類型化語(yǔ)言的例子。

  一般而言,動(dòng)態(tài)語(yǔ)言不執(zhí)行編譯時(shí)類型檢查,僅在運(yùn)行時(shí)識(shí)別對(duì)象的類型。 這種方法有利有弊:代碼編寫(xiě)起來(lái)往往更快、更容易,但同時(shí),由于您不會(huì)獲得編譯器錯(cuò)誤,只能通過(guò)單元測(cè)試和其他方法來(lái)確保應(yīng)用程序正常運(yùn)行。

  C# 最初是作為純靜態(tài)語(yǔ)言創(chuàng)建的,但 C# 4 添加了一些動(dòng)態(tài)元素,用以改進(jìn)與動(dòng)態(tài)語(yǔ)言和框架之間的互操作性。 C# 團(tuán)隊(duì)考慮了多種設(shè)計(jì)選項(xiàng),但最終確定添加一個(gè)新關(guān)鍵字來(lái)支持這些功能:dynamic。

  dynamic 關(guān)鍵字可充當(dāng) C# 類型系統(tǒng)中的靜態(tài)類型聲明。 這樣,C# 就獲得了動(dòng)態(tài)功能,同時(shí)仍然作為靜態(tài)類型化語(yǔ)言而存在。 若要了解為何以及如何做出了這樣的決定,請(qǐng)參考 PDC09 (microsoftpdc.com/2009/FT31) 上由Mads Torgersen 撰寫(xiě)的演示文稿“C# 4 中的動(dòng)態(tài)綁定”。 尤其是,動(dòng)態(tài)對(duì)象被認(rèn)定是 C# 語(yǔ)言中的“一等公民”,因此沒(méi)有用于打開(kāi)或關(guān)閉動(dòng)態(tài)功能的選項(xiàng),并且沒(méi)有向 C# 添加過(guò)類似于 Visual Basic 中的 Option Strict On/Off 之類的功能。

  當(dāng)您使用 dynamic 關(guān)鍵字時(shí),您就告訴編譯器關(guān)閉編譯時(shí)檢查。 網(wǎng)上以及 MSDN 文檔中 (msdn.microsoft.com/library/dd264736) 有大量關(guān)于如何使用該關(guān)鍵字的示例。 下面是一個(gè)常見(jiàn)示例:

dynamic d = "test";
Console.WriteLine(d.GetType());
// Prints "System.String".
d = 100;
Console.WriteLine(d.GetType());
// Prints "System.Int32".     

NET技術(shù)了解 C# 4 中的 Dynamic 關(guān)鍵字,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 兴化市| 德兴市| 新安县| 灵宝市| 逊克县| 中阳县| 宿迁市| 宜昌市| 黎平县| 凭祥市| 同德县| 化隆| 琼海市| 潼南县| 乌兰浩特市| 高州市| 科尔| 湖北省| 馆陶县| 武鸣县| 云南省| 宿松县| 阳信县| 淮滨县| 左贡县| 修文县| 喀什市| 阜城县| 丰城市| 蓬莱市| 大城县| 桂林市| 大理市| 璧山县| 汤原县| 息烽县| 邹城市| 新巴尔虎左旗| 菏泽市| 通道| 聂荣县|