我正在尝试查看是否可以使以下代码与非null类型一起使用。我最近发现,当用作ref
参数时,值类型“奇怪地” - 它们可以为空...
是否可以从函数返回“赋值目标”,以便可以实现以下代码描述的场景?
void Main()
{
// want to call F and assign the result to _result
CallAndAssign(() => F(), () => _result);
}
int F()
{
return 1;
}
int _result;
void CallAndAssign<T>(Func<T> functionToCall, Func<T> memberToAssignResultTo)
{
// As I suspected, this did not work, "left-hand side of an assignment must be a variable, property or indexer"
//memberToAssignResultTo() = functionToCall();
}
我意识到我可以通过将第二个参数设为Action并简单地执行赋值来实现这一点,但这与在下一行代码中执行相同操作并没有什么不同。
我的直觉是,如果这个 可能,那么它将涉及使用Expression,这是我最后一个C#主题之一,我还没有将我的大脑包裹到一个有用的程度。< / p>