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

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

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

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

4 ответов


можно использовать #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
}

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


//disable warning here
#pragma warning disable 0649

 //foo field declaration

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

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

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

    // rest of class
}

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