是否可以在C#中创建没有类的对象?

时间:2012-10-21 18:09:11

标签: c# object

在许多语言中,您可以创建对象而无需创建数据类型,并向该对象添加属性。

例如在JS或AS中:

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

或者你可以用C和C ++创建结构。

是否可以在C#中执行此操作?

4 个答案:

答案 0 :(得分:25)

Anonymous Types就是你要找的。例如 -

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

以上代码将创建一个新的object,其中包含属性AmountMessage

答案 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)

了解ExpandoObject

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);