암시 적 변환 및 널 문제
-
18-09-2019 - |
문제
이 기능이 있습니다
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
구조물,이 경우 질문은 불가능합니다. 구조물 할 수 없습니다 무효가 되십시오.
자세한 내용을 제공하십시오.
제휴하지 않습니다 StackOverflow