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. 구문 분석 매개변수 생성자:
4. 가장 적합한 후보자를 식별합니다.
이 경우 다음과 같은 이유로 모호성이 발생합니다.
object[]
및 string
은 모두 "특정"으로 간주됩니다(그 사이에 더 이상 구체적인 내용은 없습니다). 알고리즘 세부정보:
위 내용은 Null 값이 전달될 때 C#에서는 오버로드된 생성자를 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!