상황에 대한 몇 가지 코드 :C#을 암시 적 변환 및 == 연산자
class a
{
}
class b
{
public a a{get;set;}
public static implicit operator a(b b)
{
return b.a;
}
}
a a=null;
b b=null;
a = b;
//compiler: cannot apply operator '==' to operands of type tralala...
bool c = a == b;
이 하나가 암시 적으로 서로 변환 할 수있는 다른 종류의 인스턴스에 == 연산자를 사용할 수 있습니까? 내가 놓친 게 무엇입니까?
편집 :
유형이 동일한 통화 ==, 왜
int a=1;
double b=1;
bool c=a==b;
일을해야하는 경우?
값 유형 및 참조 유형이 아니기 때문에 int/double 예제가 작동한다고 가정합니다 ... –
그럴 수 있습니다. 문제가있는 경우에만 참조 유형이 값 유형처럼 암시 적으로 변환을 수행 할 수없는 이유를 설명하지 않습니다. –