是否可以使用 C# 添加 Object 的属性

Is it possible to add an attribute of Object with C#

在JavaScript中,我可以创建一个新对象(称为clean)。然后,如果我想设置该对象的属性,我只需设置 objectName.attributeName = whatever。是否可以在 C# 中做类似的事情,WITHOUT 定义 class?


var clean = new Object();
clean.isClean = true;

从 .NET 4.0 开始,您可以使用 ExpandoObject:

dynamic expando = new ExpandoObject();
expando.text = "hello world";

无论如何,如果您只是想即时创建对象,您应该使用匿名类型声明:

var obj = new { text = "hello world" };

实际上,expando 对象还有一个附加值:您还可以使用委托来添加方法。例如:

dynamic expando = new ExpandoObject();
expando.DoIt = new Action
(
    () => 
    {
        // Code here
    }
);

expando.DoIt();