Подтвердить что ты не робот

Отключить/подавить предупреждение CS0649 в С# для определенного поля класса

У меня есть некоторые поля в классе С#, которые я инициализирую с помощью отражения. Компилятор показывает для них предупреждение CS0649:

Поле foo' is never assigned to, and will always have its default value null '(CS0649) (Assembly-CSharp)

Я хотел бы отключить предупреждение только для этих конкретных полей и все же позволить показывать предупреждение для других классов и других полей этого класса. Можно ли отключить CS0649 для всего проекта, есть ли что-нибудь более мелкозернистое?

4b9b3361

Ответ 1

Вы можете использовать #pragma warning, чтобы отключить, а затем снова включить специальные предупреждения:

public class MyClass
{
    #pragma warning disable 0649

    // field declarations for which to disable warning
    private object foo;

    #pragma warning restore 0649

    // rest of class
}

Обратитесь к Подавление "никогда не используется" и "никогда не назначается" предупреждениям на С# для расширенного ответа.

Ответ 2

//disable warning here
#pragma warning disable 0649

 //foo field declaration

//restore warning to previous state after
#pragma warning restore 0649

Ответ 3

public class YouClass
{
#pragma warning disable 649
    string foo;
#pragma warning restore 649
}

Ответ 4

Я считаю, что стоит отметить, что предупреждение также может быть подавлено с помощью инициализатора поля. Это значительно мешает вашему коду.

public class MyClass
{
    // field declarations for which to disable warning
    private object foo = null;

    // rest of class
}