你能有带限制条件的可选参数吗?
Can you have optional parameters with a limiting condition?
我想创建一个带有两个可选参数的函数,但是您只能选择两个可选参数中的一个。
例如:
public void DoThing (int foo = 0, string bar = "test") {
if (foo != 0) // Do something with foo
if (bar != "test") // Do something with bar
}
但是,如果有人这样做 DoThing(1, "Hello World!");
,它会同时调用这两种状态,我不想让他们同时使用这两种状态。
是否可以强制他们在编译代码之前修复这个错误?
为什么不超载?
public void DoThing (int foo) {
// Do something with foo
}
public void DoThing (string bar) {
// Do something with bar
}
public void DoThing (int foo, string bar) {
// Do something with foo and bar
}
可能会创建两个类似
的方法重载
public void DoThing (string bar, int foo = 0){
// code here
}
public void DoThing (int foo , string bar = "test"){
// code here
}
我想创建一个带有两个可选参数的函数,但是您只能选择两个可选参数中的一个。
例如:
public void DoThing (int foo = 0, string bar = "test") {
if (foo != 0) // Do something with foo
if (bar != "test") // Do something with bar
}
但是,如果有人这样做 DoThing(1, "Hello World!");
,它会同时调用这两种状态,我不想让他们同时使用这两种状态。
是否可以强制他们在编译代码之前修复这个错误?
为什么不超载?
public void DoThing (int foo) {
// Do something with foo
}
public void DoThing (string bar) {
// Do something with bar
}
public void DoThing (int foo, string bar) {
// Do something with foo and bar
}
可能会创建两个类似
的方法重载 public void DoThing (string bar, int foo = 0){
// code here
}
public void DoThing (int foo , string bar = "test"){
// code here
}