Compiler Error CS0312
Jenis 'type1' tidak dapat digunakan sebagai parameter jenis 'T' dalam jenis generik atau metode 'name.’ Jenis 'type1' yang dapat diubah ke null tidak memenuhi batasan 'type2'.
Jenis nilai yang dapat diubah ke null berbeda dari rekan yang tidak dapat diubah ke null; tidak ada konversi referensi implisit atau konversi identifikasi yang ada di antaranya. Konversi pengotakan yang dapat diubah ke null (nullable) tidak memenuhi batasan jenis generik. Dalam contoh berikut, parameter jenis pertama adalah Nullable<int>
dan parameter jenis kedua adalah System.Int32
.
Hapus batasan.
Dalam contoh berikut, buat argumen jenis kedua baik
int?
atauobject
.
Kode berikut menghasilkan CS0312:
// cs0312.cs
class Program
{
static void MTyVar<T, U>() where T : U { }
static int Main()
{
MTyVar<int?, int>(); // CS0312
return 1;
}
}
Meskipun jenis nilai nullable berbeda dari jenis yang non-nullable, berbagai jenis konversi diperbolehkan antara nilai nullable dan non-nullable.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: