Код: Выделить всё
public static void Main()
{
var t = new Test();
t.Run(null);
}
public class Test where T: notnull
{
public void Run(T? value)
{
Console.WriteLine(value is null);
}
}
Это не относится к ссылочным типам, и они работают так, как я ожидаю может иметь подпись, допускающую значение NULL.
Что здесь происходит, что не позволяет типам значений иметь сигнатуры методов, допускающие значение NULL. Я обнаружил, что если я перейду с notnull на «struct», все будет работать нормально, но я хочу иметь возможность принимать ссылочные типы и типы значений.
Подробнее здесь: https://stackoverflow.com/questions/790 ... be-nullabl
Мобильная версия