2010-10-13 73 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);    

      }