C# でのマルチロードされたコンストラクターと null パラメーターの分析
クラスに複数のコンストラクターが含まれているとします。
<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);
などの null 値を含むコンストラクターを呼び出す場合、オーバーロード解決システムは次の手順に従います。
1. 該当するコンストラクターを特定します:
2. 適用できないコンストラクターを除外します:
3. params コンストラクターを解析します:
4. 最も適切な候補を特定します:
この場合、次の理由で曖昧さが生じます。
object[]
と string
はどちらも「特定」とみなされます (間にはこれ以上の特定はありません)。 アルゴリズムの詳細:
以上がNull 値が渡された場合、C# はオーバーロードされたコンストラクターをどのように解決しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。