Универсальный метод, который получает типизированное ненулевое значение и может возвращать нулевое значение.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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