Как создать свойство Nullable в универсальном классе, если T не имеет значения NULL? [дубликат] ⇐ C#
-
Anonymous
Как создать свойство Nullable в универсальном классе, если T не имеет значения NULL? [дубликат]
У меня есть следующий класс, который обычно может принимать числовые или строковые типы:
публичный класс MdSlider, где TValue: IConvertible, IEquatable { ТВ-значение? Значение {получить; набор; } ТВ-значение? Мин {получить; набор; } ТВ-значение? Макс {получить; набор; } // ... } Однако я только что понял, что если пользователь создаст, например, MdSlider, все эти три свойства будут double, а не double? и по умолчанию они имеют значения 0 вместо null. Моему приложению требуется нулевое значение, если пользователь его не установил.
[*]
Если я добавлю ограничение struct, string больше не будет приниматься.
[*]
Я не могу объявить отдельный MdSlider для string, поскольку он находится в Blazor, а имя компонента должно быть уникальным (MdSlider и MdSlider считаются одинаковыми), и я не хочу, например, создавать отдельные MdSliderString.
Можно ли объявить параметр универсального типа и принудительно указать Nullable для свойства, если оно не имеет значения NULL?
У меня есть следующий класс, который обычно может принимать числовые или строковые типы:
публичный класс MdSlider, где TValue: IConvertible, IEquatable { ТВ-значение? Значение {получить; набор; } ТВ-значение? Мин {получить; набор; } ТВ-значение? Макс {получить; набор; } // ... } Однако я только что понял, что если пользователь создаст, например, MdSlider, все эти три свойства будут double, а не double? и по умолчанию они имеют значения 0 вместо null. Моему приложению требуется нулевое значение, если пользователь его не установил.
[*]
Если я добавлю ограничение struct, string больше не будет приниматься.
[*]
Я не могу объявить отдельный MdSlider для string, поскольку он находится в Blazor, а имя компонента должно быть уникальным (MdSlider и MdSlider считаются одинаковыми), и я не хочу, например, создавать отдельные MdSliderString.
Можно ли объявить параметр универсального типа и принудительно указать Nullable для свойства, если оно не имеет значения NULL?