閱讀英文

共用方式為


編譯器錯誤 CS0456

類型參數 '類型參數名稱 1' 具有 'struct' 條件約束,因此 '類型參數名稱 1' 不能作為 '類型參數名稱 2' 的條件約束

實值類型條件約束隱含地密封,因此這些條件約束不能作為第二個類型參數的條件約束。 這是因為不能覆寫實值類型。 若要解決這個錯誤,請將實值類型條件約束直接放在第二個類型參數,而不要間接透過第一個類型參數進行。

範例

下列範例會產生 CS0456。

// CS0456.cs  
// compile with: /target:library  
public class GenericsErrors  
{  
   public class G5<T> where T : struct  
   {  
      public class N<U> where U : T {}   // CS0456  
      public class N2<U> where U : struct {}   // OK  
   }  
}