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;
}
}
  • Вопрос задан
  • 1008 просмотров
Решения вопроса 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;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы