문제

이 기능이 있습니다

public static implicit operator MyClass(string v) { return new MyClass(v); }

var.myclass = null;. 이것은 암시 적 연산자를 호출하고 null을 문자열로 전달하여 내 코드에서 혼란을 일으킨다 (반사를 사용하고 특수 케이스를 추가하고 싶지 않음). 암시 적 연산자를 일으키지 않고 myclass = null을 어떻게 작성할 수 있습니까?

나는 글쓰기를 시도했다

public static implicit operator MyClass(string v) { return  v == null ? null : new MyClass(v); }

그러나 그로 인해 stackoverflow가 발생합니다

도움이 되었습니까?

해결책

나는 당신의 문제가 3 원 운영자의 양쪽이 동일하거나 호환되는 유형이어야한다고 생각합니다.

글쓰기를 시도하십시오

if (v == null)
    return null;
else
    return new MyClass(v);

편집하다: 나는 내가 만드는 경우에만 문제를 재현 할 수 있습니다. MyClass 구조물,이 경우 질문은 불가능합니다. 구조물 할 수 없습니다 무효가 되십시오.

자세한 내용을 제공하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top