Универсальный метод, который получает типизированное ненулевое значение и может возвращать нулевое значение.C#

Место общения программистов C#
Anonymous
Универсальный метод, который получает типизированное ненулевое значение и может возвращать нулевое значение.

Сообщение Anonymous »

ниже приведен код, который представляет то, что я пытаюсь сделать:

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

private T? SomeMethod(T prm)
{
if (someCondition)
return prm;

return null;
}
Итак, идея такова: метод получает параметр, имеющий значение (не null), но возвращаемое значение метода может быть либо значением, либо null.
Приведенный выше код не компилируется с сообщением «Невозможно преобразовать значение null в параметр типа 'T». Если я добавлю ограничение (где T : class или где T : struct), то он скомпилируется, но Я не могу этого сделать, поскольку T может быть и структурой, и классом.
Итак, возможно ли это с C#?

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

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