Compiler Error CS0315
Jenis 'valueType' tidak dapat digunakan sebagai parameter jenis 'T' dalam jenis atau metode generik 'TypeorMethod<T>'. Tidak ada konversi boxing dari 'valueType' ke 'referenceType'.
Kesalahan ini terjadi ketika Anda membatasi jenis generik ke kelas tertentu, dan mencoba membuat instans kelas tersebut dengan menggunakan jenis nilai yang tidak dapat di-boxing secara implisit.
- Salah satu solusinya adalah mendefinisikan ulang struktur sebagai kelas.
Contoh berikut menghasilkan CS0315:
// cs0315.cs
public class ClassConstraint { }
public struct ViolateClassConstraint { }
public class Gen<T> where T : ClassConstraint
{
}
public class Test
{
public static int Main()
{
Gen<ViolateClassConstraint> g = new Gen<ViolateClassConstraint>(); //CS0315
return 1;
}
}
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: