2010-10-13 122 views
1

在JavaScript中,我經常使用這樣的對象創建者C#對象創建者

var o = new Object(); // generic object 
    var props = { color:"red",value:5 }; // hashtable 
    for(var key in props) o[key] = props[key]; 
    alert(o.color); //red 

是否可以寫成同意本聲明C#方法?

static void properties(out Object o, HashTable h) { ... 

這是一些設計模式?我發明了輪子嗎?

回答

1
 var test = new { name = "Testobj", color = Colors.Aqua }; 
     MessageBox.Show(test.name); 

它被稱爲匿名類型,我覺得這是你要搜索的內容。

+0

是的,這幾乎是它!有沒有辦法如何提取匿名類型的所有「成員」?由於它不是可枚舉的,所以不能使用foreach。 – 2010-10-13 16:05:20

0

由於C#是靜態類型的,你不能做到這一點..最接近的可能是匿名方法

Dictionary<string,int> dic=new Dictionary<string,int>(); 
      dic.Add("red", 5); 
      dic.Add("black", 10); 
      dic.Add("white", 1); 
      object[] obj; 
      foreach(var o in dic) 
      { 
       var sam= new { color = o.Key,value=o.Value }; 
       Console.WriteLine(sam.color);    

      }