.net - 为什么可选参数不直接编译成 C# 中的等效重载?

标签 .net c#-4.0

Possible Duplicate:
method overloading vs optional parameter in C# 4.0

似乎可选参数的大多数缺点(例如版本控制问题)可以通过将可选参数简单地转换为重载来解决。是否存在技术原因导致 C# 可选参数未以减少重载的方式实现?

最佳答案

一个原因是,如果编译器自动将可选参数编​​译到重载中,则会与开发人员自行定义它们的能力发生冲突。例如下面的代码是合法的。

class Container {

  public void Example(int x) {
    ...
  }

  public void Example(int x, int y = 42) {
    ...
  }
}

关于.net - 为什么可选参数不直接编译成 C# 中的等效重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8866466/

相关文章:

c# - 使用 Response.TransmitFile 下载文件但也包含页面源

.net - 使用powershell获取xml文件的父节点的直接子节点

C#如何编写泛型方法

c# - 我应该把一个被多次调用的函数放在哪里?

c# - 设置最大内存使用 C#

将 C 函数和 DLL 结构类型正确转换/编码为 C#

c# - C# 3.0 中的命名/可选参数?

c# - 如何使 ColorDialog 允许设置所选颜色的透明度?

.net - 您会选择哪种 ORM 来处理遗留数据库?

c# - 您如何简单地解释类型转发?