В этом коде тип нового Of().Value — int, а не int?, хотя объявление поля для Value имеет ?
Разъясняет ли спецификация C#, что в этом случае тип T? будет типом значения (не допускающим значение NULL), а не типом значения, допускающим значение NULL. ? Не могу найти.
#nullable enable
void Main()
{
Console.WriteLine( new Of().Value.GetType() );
}
class Of
{
public T? Value;
public Of(T? value) => Value = value;
public Of() {}
public Of Create() => new Of(default);
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-a-struct