Как из метода GetValue()
возвратить значение типа Nullable
.
При этом я хотел бы обеспечить возможность передавать в качестве универсального типа <T>
как типы значений, так и ссылочные типы.
Упрощенный пример, отражающий суть проблемы:
class DataStructure <T>
{
private T Value { get; set; }
Nullable<T> GetValue()
{
// В данном методе нужно из не Nullable Т-типа получить Nullable<T>
// Приведенный ниже способ VisualStudio подчеркивает как ошибку.
return this.Value as T?;
}
}
использование метода Convert.ChangeType()
задачу также решить не помогло:
class DataStructure <T>
{
private T Value { get; set; }
Nullable<T> GetValue()
{
// Приведенный ниже способ VisualStudio подчеркивает как ошибку.
return (T?)Convert.ChangeType(value, typeof(T?));
}
}
Nullable<T>
имеет смысл только для структур. Вам нужно добавить ограничение на T
:
class DataStructure<T> where T: struct
В этом случае преобразование между T?
и T
станет тривиально, и компилятор сам сможет его выполнить:
Nullable<T> GetValue()
{
return Value;
}
А использовать Nullable<T>
для ссылочных типов T
невозможно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, собственно интересует каким образом можно зашифровать, обсуфицировать программу которая создается в динамической компиляции
Есть две ViewModel, first и secondВ первой по ShowViewModel вызываем вторую