似乎可以通过使可选参数简单地转换为重载来解决大多数可选项如版本问题。是否有技术原因C#可选参数没有以减少过载的方式实现?
答案 0 :(得分:2)
一个原因是,如果编译器自动将可选参数编译到重载中,那么它将与开发人员自己定义它们的能力相冲突。例如,以下代码是合法的。
class Container {
public void Example(int x) {
...
}
public void Example(int x, int y = 42) {
...
}
}