Disable/suppress warning CS0649 in C# for a specific field of class

前端 未结 5 2064
春和景丽
春和景丽 2020-12-18 17:54

I have some fields in a C# class which I initialize using reflection. The compiler shows CS0649 warning for them:

Field foo\' is never assigned

相关标签:
5条回答
  • 2020-12-18 18:15
    public class YouClass
    {
    #pragma warning disable 649
        string foo;
    #pragma warning restore 649
    }
    
    0 讨论(0)
  • 2020-12-18 18:16
    //disable warning here
    #pragma warning disable 0649
    
     //foo field declaration
    
    //restore warning to previous state after
    #pragma warning restore 0649
    
    0 讨论(0)
  • 2020-12-18 18:18

    I believe it's worth noting the warning can also be suppressed by using inline initialization. This clutters your code much less.

    public class MyClass
    {
        // field declarations for which to disable warning
        private object foo = null;
    
        // rest of class
    }
    
    0 讨论(0)
  • 2020-12-18 18:21

    If you want to disable ALL warnings in the project (rather than per script) then do this:

    Ceate a text file called mcs.rsp (for editor scripts) in your YOUR_PROJECT_NAME/Assets directory with contents (for example):

    -nowarn:0649

    (You can change the number to match whatever warning you want)

    Original answer

    Note: This doesn't disable the warnings in the Unity console if you are using Unity (I am still investigating how to remove those)

    Here is some Unity documentation with more information

    0 讨论(0)
  • 2020-12-18 18:23

    You could use #pragma warning to disable and then re-enable particular warnings:

    public class MyClass
    {
        #pragma warning disable 0649
    
        // field declarations for which to disable warning
        private object foo;
    
        #pragma warning restore 0649
    
        // rest of class
    }
    

    Refer to Suppressing “is never used” and “is never assigned to” warnings in C# for an expanded answer.

    0 讨论(0)
提交回复
热议问题