Nullable generic field in generic class

c#, class, generics, nullable

Solution

Add `where T : struct` generic constraint to get rid of the error since `Nullable<T>` accepts only `struct`.

public class MySuperCoolClass<T> where T : struct
{
    public T? myMaybeNullField { get; set; }
}

`Nullable<T>` is defined as below

public struct Nullable<T> where T : struct

So you're also forced to do so, just to prevent you from doing `MySuperCoolClass<object>` which makes `object?` which is not valid.

Problem

I'm trying to do something like this: ``` public class MySuperCoolClass<T> { public T? myMaybeNullField {get; set;} } ``` Is this possible? This gives me the error: error CS0453: The type `T' must be a non-nullable value type in order to use it as type parameter`T' in the generic type or method System.Nullable'. Thanks

Original source