在许多语言中,您可以创建对象而无需创建数据类型,并向该对象添加属性。
例如在JS或AS中:
var myObject = {};
myObject.myParameter = "hello world";
或者你可以用C和C ++创建结构。
是否可以在C#中执行此操作?
答案 0 :(得分:25)
Anonymous Types就是你要找的。例如 -
var v = new { Amount = 108, Message = "Hello" };
以上代码将创建一个新的object
,其中包含属性Amount
和Message
。
答案 1 :(得分:11)
是ExpandoObject
名称空间下有System.Dynamic
。您可以像在其他动态语言中一样添加属性
dynamic dynObject = new ExpandoObject();
dynObject.someProperty= "Value";
http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx
答案 2 :(得分:4)
dynamic myObject = new ExpandoObject();
myObject.myParameter = "hello world";
Console.WriteLine(myObject.myParameter);
答案 3 :(得分:0)
C#9带有新功能,您现在https://devblogs.microsoft.com/dotnet/welcome-to-c-9-0/#target-typed-new-expressions不用new
即可创建对象
C#中的新表达式始终需要指定一种类型(隐式类型的数组表达式除外)。现在,如果有明确的类型要分配给表达式,则可以省去该类型。
Point p = new (3, 5);