Почему это свойство не рассматривается как Nullable?C#

Место общения программистов C#
Ответить
Anonymous
 Почему это свойство не рассматривается как Nullable?

Сообщение Anonymous »

Для следующего класса

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

    public class Component
{
public TValue? MaxValue { get; set; }
public TValue? MinValue { get; set; }
public TValue Value { get; set; } = default!;

public override string ToString() =>
$"MinValue = {MinValue}, MaxValue = {MaxValue}, Value = {Value}";
}
Почему, когда я создаю экземпляр Component, свойства MinValue и MaxValue имеют значение int вместо Nullable?

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

        static void Main(string[] args)
{
var instance = new Component();
instance.Value = 42;
Console.WriteLine(instance.ToString());
}
Я мог бы заставить его вести себя так, как я хочу, добавив где TValue: struct, но я пишу компонент Blazor, который должен работать с любым числовым типом (включая значения NULL), поэтому я не могу добавить это ограничение.
Я хотел бы знать логику, почему TValue? для int не следует компилировать как Nullable.

Подробнее здесь: https://stackoverflow.com/questions/753 ... ullableint
Ответить

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

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

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

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

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