영어로 읽기

다음을 통해 공유


컴파일러 오류 CS0217

사용자 정의 논리 연산자('operator')를 단락(short circuit) 연산자로 사용하려면 연산자의 두 매개 변수와 같은 형식을 반환해야 합니다.

사용자 정의 형식에 대한 연산자를 정의한 다음 연산자를 단락 연산자로 사용하려면 사용자 정의 연산자에 동일한 형식의 반환 값 및 매개 변수가 있어야 합니다. 단락 연산자에 대한 자세한 내용은 && 연산자|| 연산자를 참조하세요. 사용자 정의 단락 또는 조건 연산자에 대한 자세한 내용은 C# 언어 사양사용자 정의 조건 논리 연산자 섹션을 참조하세요.

다음 샘플에서는 CS0217을 생성합니다.

// CS0217.cs  
using System;  
  
public class MyClass  
{  
   public static bool operator true (MyClass f)  
   {  
      return false;  
   }  
  
   public static bool operator false (MyClass f)  
   {  
      return false;  
   }  
  
   public static implicit operator int(MyClass x)  
   {  
      return 0;  
   }  
  
   public static int operator & (MyClass f1, MyClass f2)   // CS0217  
   // try the following line instead  
   // public static MyClass operator & (MyClass f1, MyClass f2)  
   {  
      return new MyClass();  
   }  
  
   public static void Main()  
   {  
      MyClass f = new MyClass();  
      int i = f && f;  
   }  
}  

참고 항목