Sim*_*sky 5 c# parameters anonymous-function func
在C#中,我有以下函数定义:
public static TResult SomeParentFunctionName<TSource, TResult>(TSource SomeValue,Func<TSource, TResult> ChildFunction1, Func<TSource, TResult> ChildFunction2)
Run Code Online (Sandbox Code Playgroud)
此函数接受SomeValue然后调用ChildFunction1和ChildFunction2
根据我的业务规则,我总是需要运行ChildFunction1,但有时只需要运行ChildFunction2.
我可以制作ChildFunction2一个可选参数吗?我该怎么做呢?我怎么知道它是否已被传入.
1)我可以创建两个SomeParentFunctionName函数,一个有ChildFunction2一个,一个没有.
2)我可以传递一个空白的函数,它不会做任何事情 - 但这不是一个好习惯.
注意:对于那些想要开始对这个问题大喊大叫的人,如果你无法帮助,那就不要了.
当然,只需将其设置为null:
public static TResult SomeParentFunctionName<TSource, TResult>(
TSource SomeValue,
Func<TSource, TResult> ChildFunction1,
Func<TSource, TResult> ChildFunction2 = null)
{
...
if (ChildFunction2 != null)
ChildFunction2();
}
Run Code Online (Sandbox Code Playgroud)
如果你想传递一个函数ChildFunction2,请继续执行.如果你不想传递任何东西,只需在调用函数时省略它.
这实际上就是你所谓的 - 可选参数
| 归档时间: |
|
| 查看次数: |
7163 次 |
| 最近记录: |