Вход на сайт
C# - сделать в потомке дженерика параметр типа налловым
150 просмотров
Перейти к просмотру всей ветки
в ответ alex445 3 дня назад, 22:54
Как сделать так, чтобы код не надо было повторять, заменяя лишь тип параметра?
Вариантов 2:
1) какпредложил
AlexNek.Это если у тебя совсем простая логика. Т.е. если на вход null, то и вернуть null.
Если логика сложнее, то есть и другой вариант.
2) Разница между T и T? - проверка на null поэтому ее имеет смысл вынести:
class Bace<T> // нет ограничений на тип T
{
protected virtual bool IsNull (T val)
{
return val is null;
}
public T ProcessValue(T input)
{
if (IsNull(input))
{
....
}
}
}class Derived<T> : Base<T?>
where T : struct, INumber<T>
{
protected override bool IsNull(T? val)
{
return !val.HasValue;
}
}
Назад