영어로 읽기

다음을 통해 공유


컴파일러 오류 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;  
   }  
}  

참고 항목