gpt4 book ai didi

c# - 可选功能参数

转载 作者:太空狗 更新时间:2023-10-29 22:22:27 25 4
gpt4 key购买 nike

在 C# 中,我有以下函数定义:

public static TResult SomeParentFunctionName<TSource, TResult>(
TSource SomeValue,
Func<TSource, TResult> ChildFunction1,
Func<TSource, TResult> ChildFunction2)

此函数获取 SomeValue,然后调用 ChildFunction1ChildFunction2

根据我的业务规则,我总是需要运行ChildFunction1,但只是有时需要运行ChildFunction2.

我可以将 ChildFunction2 设为可选参数吗?我该怎么做呢?我怎么知道它是否已传入。

我考虑过的选项:

  1. 我可以创建两个 SomeParentFunctionName 函数,一个带有 ChildFunction2,一个没有。

  2. 我可以传入一个什么都不做的空白函数 - 但这不是好的做法。

最佳答案

当然,只需将其设置为空即可:

public static TResult SomeParentFunctionName<TSource, TResult>(
TSource SomeValue,
Func<TSource, TResult> ChildFunction1,
Func<TSource, TResult> ChildFunction2 = null)
{
...
if (ChildFunction2 != null)
ChildFunction2();
}

如果您想为 ChildFunction2 传递函数,请继续执行。如果您不想为其传递任何内容,只需在调用该函数时将其省略即可。

这实际上就是您所说的 - optional argument

关于c# - 可选功能参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24945007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com