C# 中多载构造函数与空值参数的解析
假设一个类包含多个构造函数:
<code class="language-csharp">public class EffectOptions { public EffectOptions(params object[] options) { } public EffectOptions(IEnumerable<object> options) { } public EffectOptions(string name) { } public EffectOptions(object owner) { } public EffectOptions(int count) { } public EffectOptions(Point point) { } }</code>
当使用空值调用构造函数,例如 EffectOptions options = new EffectOptions(null);
,重载解析系统会遵循以下步骤:
1. 识别可应用的构造函数:
2. 排除不可应用的构造函数:
3. 解析 params 构造函数:
4. 识别最佳可应用候选者:
在本例中,歧义出现是因为:
object[]
和 string
都被认为是“具体的”(两者之间没有更具体的)。算法细节:
以上是当传递空值时,C# 如何解决构造函数重载?的详细内容。更多信息请关注PHP中文网其他相关文章!