Обнуляемая универсальная типизацияC#

Место общения программистов C#
Anonymous
Обнуляемая универсальная типизация

Сообщение Anonymous »

Я получаю неожиданные результаты при использовании функции ссылочные типы, допускающие значение NULL с дженериками.
Например, универсальный класс, который имеет элемент, допускающий значение NULL< /p>

Код: Выделить всё

public class Entry where T : notnull
{
public T? Member { get; set; }

}
Если я попытаюсь присвоить члену число, допускающее значение NULL

Код: Выделить всё

Entry integers = new();

int? nullNumber = null;

integers.Member = nullNumber;
Я получаю исключение:

Код: Выделить всё

Cannot convert source type 'System.Nullable' to target type 'int'
Я ожидаю, что типы int? nullNumber и int? Член записи должен быть одинаковым.

Почему компилятор считает, что они разные?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ric-typing

Вернуться в «C#»