程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 4.0中的動態類型和動態編程(1)

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

編輯:關於C語言

隨著web開發的大行其道,各種動態語言也借著這股東風,蓬勃發展起來。在軟件開發界,動態語言正 在被越來越多的的人所接受和使用,在CSDN所做的2007年讀者大調查中,動態語言在開發人群中的受關注 程度竟然達到12%。而在 TIOBE的排名中,動態語言竟然占有了前十名中的六個席位(包括PHP、Python、 Perl和 Javascript,在加上越來越動態的Java和C#)。

“未來屬於動態語言”似乎正在從一個預言成為一個現實。C#自然不會錯過這種技術發展確實,她正 在通過不斷引入新的動態預言的特性,使自己變得越來越美麗“動”人。

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() );
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved