Есть ли способ создать стандартные классы и объекты в C #, как PHP - PullRequest
6 голосов
/ 06 марта 2012

В php мы можем создавать стандартные классы и объекты вроде этого

< ?php 

$ car = new stdClass;
$ car-> Color = 'black';
$ car-> type = 'sports';

print_r ($ автомобиля);
?>

Есть ли подобный способ в C # .net ??? Я очень новичок в C # любой может помочь ???

Ответы [ 3 ]

10 голосов
/ 06 марта 2012

Вы можете использовать Анонимные типы в C #, например: взято по ссылке:

var v = new { Amount = 108, Message = "Hello" };
    Console.WriteLine(v.Amount + v.Message);

Обратите внимание на раздел «Примечания» на предмет их ограничений (например, может быть приведен только к объекту) и т. Д.

8 голосов
/ 06 марта 2012

C # статически типизирован, поэтому обычные классы должны быть объявлены перед использованием.Однако анонимные типы позволяют объявлять классы на основе инициализации.После объявления ни тип, ни экземпляр не могут быть изменены.

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

dynamic car = new ExpandoObject();
car.Color = "Black";
car.Type "Sports";
3 голосов
/ 06 марта 2012

Вы можете использовать анонимные типы, но они не совсем одинаковы: http://msdn.microsoft.com/en-us/library/bb397696.aspx

C # на самом деле все о строгой типизации, так что поддержка слабого типа, ну, довольно слабая. В зависимости от того, что вы на самом деле здесь делаете, может работать анонимный тип, но в целом вы должны создавать реальные классы при кодировании на C #. Для вашего Car примера выше я бы обычно создавал класс. Это больше кода, но это так C #. PHP, вы можете создать приложение, скажем, с 10 файлами PHP, но то же самое приложение C #, вероятно, в конечном итоге будет 20-30.

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