컴파일러 오류 CS0172
'type1'과 'type2'는 서로 암시적으로 변환되므로 조건식의 형식을 확인할 수 없습니다.
조건문에서는 :
토큰의 양쪽에 있는 형식을 암시적으로 변환할 수 있어야 합니다. 또한 상호 암시적 변환도 있을 수 없습니다. 변환은 하나만 필요합니다.
다음 샘플에서는 CS0172를 생성합니다.
// CS0172.cs
public class Square
{
public class Circle
{
public static implicit operator Circle(Square aa)
{
return null;
}
public static implicit operator Square(Circle aa)
// using explicit resolves this error
// public static explicit operator Square(Circle aa)
{
return null;
}
}
public static void Main()
{
Circle aa = new Circle();
Square ii = new Square();
object o = (1 == 1) ? aa : ii; // CS0172
// the following cast would resolve this error
// (1 == 1) ? aa : (Circle)ii;
}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.