我正在使用一个具有可选参数的方法,并且我(可能)希望将它们传递给另一个也使用可选参数的方法。这可以吗?
示例:
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 的默认输入,而不是将该责任传递给可能想要使用此类/方法的所有其他类。
这完全取决于你想要什么,但一个例子是:
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);
}
}
}