我知道我们可以使用这样的语法
var r = new MyType { name = "dd"}
是否可以以任何更简单的方式使用此类语法
MyType myType = GetMyType("some method returns instance of mytype"){
name="myname",
otherProp = otherPro,
ExecuteMyTypeMethod()
};
答案 0 :(得分:2)
请注意,您所显示的是不是匿名类型,如下所示:
var r = new { name = "dd" }; // Note the lack of a type name
这是对象初始值设定项语法 - 不,它只适用于构造函数。我偶尔会发现疼痛,但就是这样。
编辑:评论建议使用扩展方法。你可以这样做:
public static T With<T>(this T item, Action<T> action) where T : class
{
action(item);
return item;
}
此时你可以写:
MyType myType = GetMyType("some method returns instance of mytype").With(t => {
t.name="myname";
t.otherProp = otherPro;
t.ExecuteMyTypeMethod();
});
唯一的好处是你仍然可以在一次执行中执行初始化。通常我更喜欢使用单独的陈述。