Baca dalam bahasa Inggris

Bagikan melalui


Kesalahan Kompilator CS0456

Parameter jenis 'Nama Jenis Parameter 1' memiliki batasan 'struct' sehingga 'Nama Jenis Parameter 1' tidak dapat digunakan sebagai batasan untuk 'Nama Jenis Parameter 2'

Batasan jenis nilai secara implisit disegel sehingga batasan tersebut tidak dapat digunakan sebagai batasan pada parameter jenis kedua. Ini karena jenis nilai tidak dapat diambil alih. Untuk mengatasi kesalahan ini, letakkan batasan jenis nilai langsung pada parameter jenis kedua, alih-alih melakukannya secara tidak langsung dengan menggunakan parameter jenis pertama.

Contoh

Sampel berikut menghasilkan 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  
   }  
}