【发布时间】:2023-03-19 04:50:01
【问题描述】:
所以例如你有一个类型:
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 ) {}
}
这里我只是给出了使用构造函数的例子,但如果它们是类型本身的非构造函数方法,结果将是相同的,对吧?
所以当你这样做时:
EffectOptions options = new EffectOptions (null);
会调用哪个构造函数,为什么?
我可以自己对此进行测试,但我想了解重载解析系统的工作原理(不确定是否是这样的名称)。
【问题讨论】:
-
如果没有歧义,那么它会调用“最具体”的构造函数。规范中如何定义“最具体”。请参阅stackoverflow.com/questions/3674368/… 以获取相关信息和规范相关(至少一些相关)部分的链接。
标签: c# .net overload-resolution