Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0453

Typ "Nazwa typu" musi być typem wartości niepustej, aby użyć go jako parametru "Nazwa parametru" w typie ogólnym lub metodzie "Identyfikator ogólny"

Ten błąd występuje, gdy używasz argumentu typu innego niż wartość w wystąpieniu typu ogólnego lub metody, która ma ograniczenie wartości. Może również wystąpić, gdy używasz argumentu typu wartości dopuszczanej do wartości null. Zobacz dwa ostatnie wiersze kodu w poniższym przykładzie.

Przykład

Poniższy kod generuje ten błąd.

C#
// 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>>> { }

Zobacz też