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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект