Как удалить предупреждение компилятора CS0649 при добавлении пользовательского атрибута? - PullRequest
0 голосов
/ 11 декабря 2018

Цель: Чтобы удалить предупреждение компилятора 'CS0649' (поле никогда не назначается), когда я использую свой настраиваемый атрибут.

У меня есть настраиваемый атрибут (приведенный ниже код является лишь примерами):

[AttributeUsage(AttributeTargets.Field)]
public class MyCustomAttribute : Attribute { }

Затем я использую этот атрибут в поле:

[MyCustom]
private readonly SomeType someType;

Мое приложение автоматически заполнит someType значением, поэтому нам не нужно беспокоиться об инициализацииЭто.

Я по-прежнему получу волнистую строку в Visual Studio под someType, и предупреждающее сообщение «Поле» someType »никогда не назначается и всегда будет иметь значение по умолчанию, равное нулю."

Есть ли какой-либо атрибут или другие средства, которые я могу добавить к MyCustomAttribute, который удалит это предупреждение компилятора?

ПРИМЕЧАНИЕ. Я не хочу изменять поле или вводить поле внутри.Я просто хочу добавить атрибут и предупреждение исчезнет.

1 Ответ

0 голосов
/ 11 декабря 2018

Есть только два способа избавиться от предупреждения:

  1. Использовать #pragma warning disable / restore или
  2. Подавить предупреждение для всего вашего проекта в проектеСвойства -> Построить -> и добавить номер предупреждения в «Подавить предупреждения».

Но это все.

Но именно поэтому это предупреждение, а не ошибка.Предупреждения служат для обозначения подозрительных, но вполне законных вещей.Поле, которое никогда не устанавливается внутри самого класса, является подозрительным, но не обязательно ошибкой.

Директивы #pragma - лучший способ избавиться от них, поскольку они явно показывают, что вы подтвердили предупреждениеи посчитал это необоснованным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...