考虑以下:
var o = new { Foo = "foo", Bar = "bar" };
Run Code Online (Sandbox Code Playgroud)
此实例是只读的,因为匿名类型不像类那样实现setter:
public class O
{
public String Foo { get; set; }
public String Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
是否可以"打开"匿名实例并允许其属性被更改?最好用比创建课程所需的字符少的字符.
我想也许这可以用Object上的扩展方法来完成; o.SetProperty(o.Foo, "foo!");,如果你不能在构造对象时在线实现setter.