33

在许多语言中,您可以在不创建数据类型的情况下创建对象,并向该对象添加属性。

例如在 JS 或 AS 中:

 var myObject = {};
 myObject.myParameter = "hello world";

或者,您可以使用 C 和 C++ 创建结构。

有可能在 C# 中做到这一点吗?

4

3 回答 3

65

匿名类型是您要找的。例如 -

var v = new { Amount = 108, Message = "Hello" };

上面的代码将创建一个新object的属性AmountMessage.

于 2012-10-21T18:10:51.240 回答
25

是的,ExpandoObjectSystem.Dynamic命名空间下。您可以像在其他动态语言中一样动态添加属性

dynamic dynObject = new ExpandoObject();
dynObject.someProperty= "Value";

http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx

于 2012-10-21T18:13:24.703 回答
5

阅读有关ExpandoObject

dynamic myObject = new ExpandoObject();
myObject.myParameter = "hello world";

Console.WriteLine(myObject.myParameter);
于 2012-10-21T18:14:01.683 回答