我想在内联if语句中写入lambda表达式。但是内联if语句必须具有强类型结果。如何编写强类型的lambda表达式?
MyType obj = someObj.IsOk ? null :() => {
MyType o = new MyType(intVal);
o.PropertyName = false;
return o;
};
当然这不起作用,因为lambda表达式不是强类型。我想到了使用Func<intVal, MyType>
委托,使其成为强类型。
但是,如何在内联中使用此Func<>
?是否有可能必须在外界定义我自己的函数,并在内联if语句中使用它?
好了,我不知道你是什么将使用您保存的lambda(在本地使用它或将它传递给其他对象/方法)。如果你只在本地使用lambda,我想你应该可以用var关键字完成你的工作。 – 2009-07-02 21:16:49
我改变了我的示例代码。事情是我必须使用带参数的构造函数,并设置其他属性。所以对象初始值设定不考虑。 – 2009-07-02 21:59:41