Baca dalam bahasa Inggris

Bagikan melalui


Kesalahan Kompilator CS0453

Jenis 'Type Name' harus merupakan jenis nilai yang tidak dapat diubah ke null untuk menggunakannya sebagai 'Parameter Name' parameter dalam 'Generic Identifier' jenis atau metode generik

Kesalahan ini terjadi ketika Anda menggunakan argumen jenis non-nilai dalam membuat instans jenis atau metode generik yang memiliki batasan nilai di dalamnya. Ini juga bisa terjadi saat Anda menggunakan argumen jenis nilai yang dapat diubah ke null. Lihat dua baris kode terakhir dalam contoh berikut.

Contoh

Kode berikut menghasilkan kesalahan ini.

// CS0453.cs  
using System;  
public class HV<S> where S : struct { }

// CS0453: string is not a value type
public class H1 : HV<string> { }

// CS0453: H1 is a class, not a struct
public class H2 : HV<H1> { }

// CS0453: HV is based on a class, not a struct
public class H3<S> : HV<S> where S : class { }
public class H4<S> : HV<S> where S : struct { } // OK

// CS0453: HV accepts a nullable int type
public class H4 : HV<int?> { }

// CS0453: HV is based on Nullable type of int
public class H5 : HV<Nullable<Nullable<int>>> { }

Lihat juga