Javascript "var obj = new Object" эквивалент в C # - PullRequest
15 голосов
/ 08 июля 2011

Существует ли простой способ создания объектов и свойств в C #, как вы можете в Javascript.

Пример Javascript:

var obj = new Object;

obj.value = 123476;
obj.description = "this is my new object";
obj.mode = 1;

Ответы [ 4 ]

25 голосов
/ 08 июля 2011

попробуйте c # анонимные классы

var obj = new { 
    value = 123475, 
    description = "this is my new object", 
    mode = 1 };

хотя есть много отличий ...

@ Валера Колупаев & @ GlennFerrieLive упомянул другой подход с динамическим ключевым словом

14 голосов
/ 08 июля 2011

Если вы хотите создать объект без привязки, используйте ExpandoObject .

dynamic employee, manager;

employee = new ExpandoObject();
employee.Name = "John Smith";
employee.Age = 33;

manager = new ExpandoObject();
manager.Name = "Allison Brown";
manager.Age = 42;
manager.TeamSize = 10;

Другой вариант - использовать анонимный класс , нобудет работать для вас, только если вы будете использовать его в области действия метода, поскольку информация о типе объекта не может быть доступна извне области действия метода.

5 голосов
/ 08 июля 2011

В C # вы могли бы сделать:

var obj = new SomeObject {
    value = 123476,
    description = "this is my new object",
    mode = 1
};

РЕДАКТИРОВАТЬ: Удержание этого здесь в ожидании разъяснения от OP, поскольку я, возможно, неправильно понял его намерения.

2 голосов
/ 08 июля 2011

Способ сделать это - использовать динамические типы C # 4.0, такие как Expando Object ... см. Эту тему:

Как создать класс динамически

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