共用方式為


編譯器錯誤 CS0217

更新:2007 年 11 月

錯誤訊息

為了可以當成最少運算 (Short Circuit) 運算子使用,使用者定義的邏輯運算子 ('operator') 其傳回型別必須與其 2 個參數的型別相同。

如果您定義了一個使用者定義型別的運算子,然後嘗試將該運算子當成最少運算 (Short Circuit) 運算子使用,則該使用者定義運算子必須有相同型別的參數和傳回值。如需最少運算子的詳細資訊,請參閱 && 運算子|| 運算子

下列範例會產生 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;
   }
}

請參閱

參考

可多載的運算子 (C# 程式設計手冊)