C # объект создатель - PullRequest
       1

C # объект создатель

1 голос
/ 13 октября 2010

В JavaScript я часто использую что-то вроде этого создателя объекта

  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) { ...

Это какой-то шаблон дизайна? Я изобретаю колесо?

Ответы [ 3 ]

2 голосов
/ 13 октября 2010

Возможно, вы захотите взглянуть на объект Expando в C # 4. Это примерно так же близко, как вы собираетесь получить динамический объект в C #, как вы можете получить в JavaScript.

http://msdn.microsoft.com/en-us/magazine/ff796227.aspx

http://www.c -sharpcorner.com / blogs / BlogDetail.aspx? BlogId = 2134

1 голос
/ 13 октября 2010
        var test = new { name = "Testobj", color = Colors.Aqua };
        MessageBox.Show(test.name);

Это называется анонимный тип, я думаю, это то, что вы ищете.

0 голосов
/ 13 октября 2010

Так как 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);               

            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...