使用可选参数作为另一个带有可选参数的方法的输入

问题描述 投票:0回答:1

我正在使用一个具有可选参数的方法,并且我(可能)希望将它们传递给另一个也使用可选参数的方法。这可以吗?

示例:

public class FClass{
    public void F(string input1, string input2 = "my default string"){
        // Do stuff
    }
}

public class GClass{
    public void G(string input1, string input2 = default){
        // Do stuff, create someVar
        Fclass.F(someVar, input2) //What can we do here? Note that F does not accept null values.
    }
}

在这种情况下,如果 input2 已发送到方法 G,我只想将其发送到方法 F。 有多种方法可以进行空检查等,但是如果有许多可选参数应该像这样处理,那么这可能会变得乏味。

请注意,这些方法位于不同的类中,因此 FClass 很自然地决定方法 F 的默认输入,而不是将该责任传递给可能想要使用此类/方法的所有其他类。

c#
1个回答
0
投票

这完全取决于你想要什么,但一个例子是:

public class GClass {
    public void G(string input1, string input2 = default) {
        // Do stuff, create someVar

        if (input2 == null) {
            Fclass.F(someVar);
        } else {
            Fclass.F(someVar, input2);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.