public string Name { get; set; }
//Предупреждение (активно) CS8618 свойство "Name", не допускающий значения NULL, должен содержать значение,
//отличное от NULL, при выходе из конструктора. Возможно, стоит объявить свойство как допускающий значения NULL.
Нужно ли соглшаться с интеллисайнс и добавлять string? ?
Что это даст(про или контра)?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: В чем смысл предупреждения: string не допускающий NULL?
vaa> public string Name { get; set; }
vaa>//Предупреждение (активно) CS8618 свойство "Name", не допускающий значения NULL, должен содержать значение,
vaa>//отличное от NULL, при выходе из конструктора. Возможно, стоит объявить свойство как допускающий значения NULL.
vaa>
vaa>Нужно ли соглшаться с интеллисайнс и добавлять string? ? vaa>Что это даст(про или контра)?
Это потребует от кода, который работает с экземплярами вашего класса, явно учитывать возможность обнаружить null в вашем свойстве.
Там, где вы напишете Name.Length, компилятор предупредит вас о возможном вылете NRE.
Если же вы оставите string, то берёте на себя обязанность никогда не возвращать null из геттера. Именно об этом вам и говорит компилятор.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: В чем смысл предупреждения: string не допускающий NULL?
это сложнее чем монады. реально.
единственный смысл если включить ошибки компиляции.
Но что интересно.
warning CS8622: Допустимость значений NULL для ссылочных типов в типе параметра "a" объекта "анонимный метод" не соответствует целевому объекту делегирования "ElapsedEventHandler" (возможно, из-за атрибутов допустимости значений NULL)
для
var elapsed = new System.Timers.ElapsedEventHandler(delegate (object a, System.Timers.ElapsedEventArgs b) { o.OnNext(DateTime.Now); });
vaa> public string Name { get; set; }
vaa>//Предупреждение (активно) CS8618 свойство "Name", не допускающий значения NULL, должен содержать значение,
vaa>//отличное от NULL, при выходе из конструктора. Возможно, стоит объявить свойство как допускающий значения NULL.
vaa>
vaa>Нужно ли соглшаться с интеллисайнс и добавлять string? ?
.net 5-6 что-то поменялось, что string стал не null?
Кодом людям нужно помогать!
Re[2]: В чем смысл предупреждения: string не допускающий NULL?
Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, vaa, Вы писали:
vaa>>
vaa>> public string Name { get; set; }
vaa>>//Предупреждение (активно) CS8618 свойство "Name", не допускающий значения NULL, должен содержать значение,
vaa>>//отличное от NULL, при выходе из конструктора. Возможно, стоит объявить свойство как допускающий значения NULL.
vaa>>
vaa>>Нужно ли соглшаться с интеллисайнс и добавлять string? ?
S>.net 5-6 что-то поменялось, что string стал не null?
В новом шарпе по умолчанию референс-типы стали ненуллабл.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: В чем смысл предупреждения: string не допускающий NULL?
S>.net 5-6 что-то поменялось, что string стал не null?
нет, в том то и дело, просто компилятор предупреждения сыпит.
типа надо присваивать через null! или default!
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: В чем смысл предупреждения: string не допускающий NULL?
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Sharov, Вы писали:
S>>.net 5-6 что-то поменялось, что string стал не null? vaa>нет, в том то и дело, просто компилятор предупреждения сыпит. vaa>типа надо присваивать через null! или default!
Открой файл проекта (который *.csproj) в блокноте, найди там <Nullable>enable</Nullable> и замени на disable.
Можно это же сделать через свойства проекта в Студии (поиск в свойствах проекта по "null")
Предупреждения уйдут
Re: В чем смысл предупреждения: string не допускающий NULL?
vaa> public string Name { get; set; } vaa>//Предупреждение (активно) CS8618 свойство "Name", не допускающий значения NULL, должен содержать значение, vaa>Что это даст(про или контра)?
Меньше придётся плясать с бубном при вставках в таблицы с varchar not null.
Re: В чем смысл предупреждения: string не допускающий NULL?
vaa> public string Name { get; set; }
vaa>//Предупреждение (активно) CS8618 свойство "Name", не допускающий значения NULL, должен содержать значение,
vaa>//отличное от NULL, при выходе из конструктора. Возможно, стоит объявить свойство как допускающий значения NULL.
vaa>
vaa>Нужно ли соглшаться с интеллисайнс и добавлять string? ?
Перевожу с кривого машинного на понятный: компилятор предупреждает о том, что после того как объект будет создан, свойство Name будет иметь значение null, потому что ничем не инициализировано ни в объявлении свойства, ни внутри конструктора. Соответственно, либо надо его где-то инициализировать ненулевым значением, либо разрешить иметь нулевые значения.
Какой из вариантов в данном случае логически правильнее, знаешь только ты.