我有以下功能定义
private void DoExport(Action<ColumnView, bool> UpdateColumns)
{
...
}
private void UpdateNonPrintableColumns(ColumnView view, bool visible)
{
...
}
Run Code Online (Sandbox Code Playgroud)
被调用的示例:
DoExport(UpdateNonPrintableColumns);
Run Code Online (Sandbox Code Playgroud)
我的问题是.如何传递'null'动作?它甚至可能吗?
例如
DoExport(null); <- Throws exception
在函数体中调用操作时,DoExport(null)会引发异常
Pat*_*man 14
如果您想要传递空行动:
DoExport((x, y) => { })
Run Code Online (Sandbox Code Playgroud)
其次,你必须检查你的代码,因为null如果完全没问题就传入.
public void X()
{
A(null);
}
public void A(Action<ColumnView, bool> a)
{
if (a != null)
{
a();
}
}
Run Code Online (Sandbox Code Playgroud)
或者根据C#6(使用空传播运算符):
public void A(Action<ColumnView, bool> a)
{
a?.Invoke();
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*tle 10
您可以传递无效的操作:
DoExport((_, __) => { });
Run Code Online (Sandbox Code Playgroud)