gotoxy
@gotoxy

Отключить предупреждение CS8618 для конструктора при инициализации через отдельную функцию?

В проекте включены nullable reference types. В конструкторах вызывается init-функция, где всем полям задаются значения.
Но так как в самих конструкторах инициализации не происходит, то студия выдаёт предупреждение cs8618 о неинициализированных полях. Есть ли способ избавиться от предупреждения без #pragma warning disable?

class A {
private string _name;
...

public A() { // <= CS8618
Init();
}

private Init() {
_name = string.Empty;
}
}
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
ayazer
@ayazer
Sr. Software Engineer
используйте ! в каждом месте где вы уверены что нулла точно не будет (https://docs.microsoft.com/en-us/dotnet/csharp/lan...)

upd: ну или явно помечать их через MemberNotNull, т.е.

[MemberNotNull(nameof(_name))]
private Init() {
_name = string.Empty;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
НПК «Катрен» Новосибирск
от 90 000 ₽
WB—Tech Москва
от 140 000 до 160 000 ₽
от 3 500 до 4 000 $
07 мар. 2021, в 03:18
1500 руб./за проект
06 мар. 2021, в 22:58
70000 руб./за проект
06 мар. 2021, в 22:36
10000 руб./за проект