如何在C#中创建动态对象

我之前正在使用javascript。

在javascript中,我这样做是为了创建动态对象并为其分配属性。

var house = new object(); house.kitchen = 1; house.bedroom = 2; house.livingroom =3; 

如何在C#中做同样的事情?

在C#中,你可以使用一些叫做dynamic东西

 dynamic house = new ExpandoObject(); house.Kitchen = 1; house.Bedroom = 2; house.Livingroom =3; 

但是如果我不熟悉c#,那么我就会开始, dynamic有非常特殊的用途,通常是在更高级的情况下。 你真正应该关注的是类和对象。 C#是一种静态语言,动态就是为了给它提供更多的灵活性。

我猜你正在寻找像C#中的ExpandoObject这样的东西。 有关如何使用它的详细信息,请参阅此问题 。 基本上,它允许您以类似于Javascript的方式在运行时向对象添加属性。 但请注意,惯用的C#没有太多使用它。

您的JavaScript示例的类似C#代码将是这样的:

 dynamic house = new ExpandoObject(); house.kitchen = 1; house.bedroom = 2; house.livingroom = 3;