반환 유형을 객체 나 자신이 정의한 사용자 정의 유형으로 변환하려고하면 암시 적 연산자에 문제가있는 이유는 무엇입니까? 내가 개체 또는 사용자 정의 형으로 유형을 변환 할 때사용자 정의 정의 유형으로 변환 할 때 암시 적 연산자에 오류가 발생합니다.
나는 내가, 내가 그러나이
public static implicit operator int(MyClass a)
{
return 123;
}
처럼 변환하고 int
같은 간단한 형식을 반환하려고 아무 문제가 없다 오류가 발생합니다. 나는이있는 경우
public static implicit operator object(MyClass a)
{
return new {};
}
내가 오류 같은 종류를 얻을 것이다 : 예를 들어, 나는 이런 식으로 뭔가가있는 경우 "으로 System.Object에 사용자 정의 변환을"말 컴파일 타임 오류가 발생합니다 :
public static implicit operator CustomTestObject(MyClass a)
{
return new CustomTestObject();
}
암시 적 연산자를 사용할 때 반환 할 사용자 지정 정의 유형으로 변환하려면 어떻게해야합니까?
'CustomTestObject' 변환이 작동하지 않는 이유를 알 수 없습니다. –
@mikez 마지막 변환에 대한 정확한 컴파일러 메시지를보고 싶습니다. 또한 내부 클래스 (또는 구조체), 해당 클래스의 상속 체인 및'MyClass' 및'CustomTestObject' 상속 체인을 알고 싶습니다. 제 대답에서 저는 다른 하나의 기본 클래스라고 생각했습니다. –
@JeppeStigNielsen 예, 설명 할 수 있습니다. –