Как объявить класс динамически?C # - PullRequest
3 голосов
/ 02 ноября 2010

есть ли возможность динамически объявить класс?Есть ли возможность создать общий список с анонимным классом в C #?любые фрагменты кода помогут.спасибо

Ответы [ 3 ]

5 голосов
/ 02 ноября 2010

Как уже упоминалось в комментариях SLaks, это возможно.Но это нетривиально.Я не уверен, что вы пытаетесь сделать, но вы можете легко добавить анонимные типы в общий список объектов.

List<object> list = new List<object>();
for(int i = 0; i < 10; i++){
   list.Add(new { SomeProperty = i, OtherProperty = "foobar" });
}
5 голосов
/ 02 ноября 2010

Для объявления класса динамически требуется CodeDom .

Есть ли возможность создать общий список с анонимным классом в C #?

Да, но, как правило, не рекомендуется для использования вне непосредственного контекста.Например, создается общий список анонимного типа:

var range = Enumerable.Range(0, 100);

var genericList = range.Select(value => new { Value = value }).ToList();

В приведенном выше коде genericList - это List<T>, содержащий анонимный тип.

1 голос
/ 02 ноября 2010

Microsoft сделала C # динамическим в версии 4.0.Вы можете использовать новое ключевое слово «dynamic».Следующая ссылка содержит несколько хороших примеров использования нового динамического типа.

http://msdn.microsoft.com/en-us/library/dd264741.aspx

...