共用方式為


編譯器錯誤 CS0449

更新:2007 年 11 月

錯誤訊息

'class' 或 'struct' 條件約束必須在任何其他條件約束的前面

泛型型別或方法之型別參數的條件約束必須以特定順序出現︰class 或 struct 必須在最前面 (如果出現的話),接著是任何介面條件約束,最後是任何建構函式條件約束。發生這個錯誤是因為沒有把 class 或 struct 條件約束寫在最前面。若要解決這個錯誤,請重新排列條件約束子句。

範例

下列範例會產生 CS0449:

// CS0449.cs
// compile with: /target:library
interface I {}
public class C4 
{
   public void F1<T>() where T : class, struct, I {}   // CS0449
   public void F2<T>() where T : I, struct {}   // CS0449
   public void F3<T>() where T : I, class {}   // CS0449

   // OK
   public void F4<T>() where T : class {}
   public void F5<T>() where T : struct {}
   public void F6<T>() where T : I {}
}