多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > C# 4.0中的動態類型和動態編程

C# 4.0中的動態類型和動態編程

來源:程序員人生   發布時間:2014-02-20 07:56:45 閱讀次數:3848次

C# 4.0的主題就是動態編程(Dynamic Programming)。雖然C#仍然是一種靜態語言,但是對象的意義開始變得越來越“動態”。它們的結構和行為無法通過靜態類型來捕獲,或者至少編譯器在編譯程序時無法得知對象的結構和行為。

C#引入了一種新的靜態類型”dynamic”,當你擁有了一個dynamic類型的對象后,你“對它做的事情”只會在運行時進行解析。設想我們擁有這樣兩個類,分別表示兩種飲料:

public class Coffee
{
public string GetName()
{
return "You selected Maxwell coffee.";
}
}
public class Juice
{
public string GetName()
{
return "You selected orange juice.";
}
}

現在,我們就可以用dynamic類型來表示這兩種飲料。我們寫一個函數GetDrink(),根據用戶不同的選擇返回不同的對象。

static private Object GetDrink(int i)
{
if (i == 1)
{
return new Juice();
}
else  // default
{
return new Coffee();
}
}
static void Main(string[] args)
{
Console.WriteLine("Please Select Your Drink: 1 -- Juice; 2 -- Coffee");
int nDrinkType = Console.Read();
dynamic drink = GetDrink( nDrinkType );
Console.WriteLine( drink.GetName() );
}

C#編譯器允許你通過dynamic對象調用任何方法,即使這個方法根本不存在,編譯器也不會在編譯的時候報編譯錯誤。只有在運行的時候,它才會檢查這個對象的實際類型,并檢查在它上面GetName()是什么意思。動態類型將使得C#可以以更加統一而便利的形式表示下列對象:

  • 來自動態編程語言——如Python或Ruby——的對象
  • 通過IDispatch訪問的COM對象
  • 通過反射訪問的一般.NET類型
  •  結構發生過變化的對象——如HTML DOM對象

當我們得到一個動態類型的對象時,不管它是來自COM還是IronPython、HTML DOM還是反射,只需要對其進行操作即可,動態語言運行時(DLR)會幫我們指出針對特定的對象以及這些操作的具體意義。這將給我們的開發帶來極大的靈活性,并且能夠極大程度上地精簡我們的代碼。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲免费视频在线观看 | 极品色影视 | 亚洲精品不卡在线 | 国产精品冒白浆免费视频 | 亚洲黑人嫩小videos | 成人在线观看一区 | 久久性生活 | 欧美视频日韩专区午夜 | 嫩草影院在线观看精品 | 波多野结衣在线观看3人 | 一二三四视频在线6 1免费观看 | 欧美猛交xxxxx | 非洲黑人女bbwxxxx | 视频精品一区 | 国产亚洲精品福利片 | 亚洲图片一区二区 | 色操网| 看一级毛片一区二区三区免费 | 中文字幕一区二区三区永久 | 久久精品一区二区三区中文字幕 | 欧美日韩亚洲综合久久久 | 精品国产一区二区三区香蕉沈先生 | 中文字幕乱码视频 | 午夜久久久久久亚洲国产精品 | 亚洲精品成人一区 | 免费视频在线观看网站 | 亚洲精品国产福利 | 污污成人一区二区三区四区 | 亚洲精品日本一区 | 欧美日韩高清观看一区二区 | 毛片观看网址 | 天天综合天天做天天综合 | 另类 欧美 视频二区 | 淫www| 中文字幕专区在线亚洲 | 韩国欧美 | 羞羞首页| 天天综合视频网 | 亚洲伊人久久精品 | 久久r这里只有精品 | 亚洲福利 |