猿问

禁止在C#中使用“从不使用”和“从不分配给”警告

我在C#项目中有一个HTTPSystemDefinitions.cs文件,该文件基本上描述了较旧的Windows ISAPI,供托管代码使用。


这包括与ISAPI相关的完整结构集,而不是全部或被代码使用。在编译时,这些结构的所有字段成员都将引起如下警告:


警告字段'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader'从未分配给该字段,并且其默认值始终为null


要么


警告从未使用字段'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.HttpStatus'


这些可以禁用#pragma warning disable吗?如果是这样,相应的错误号是什么?如果没有,我还能做什么?请记住,我只是要对此文件执行此操作,重要的是我可以看到其他文件发出的此类警告。


编辑


示例结构:-


struct HTTP_FILTER_PREPROC_HEADERS

{

    //

    //  For SF_NOTIFY_PREPROC_HEADERS, retrieves the specified header value.

    //  Header names should include the trailing ':'.  The special values

    //  'method', 'url' and 'version' can be used to retrieve the individual

    //  portions of the request line

    //


    internal GetHeaderDelegate GetHeader;

    internal SetHeaderDelegate SetHeader;

    internal AddHeaderDelegate AddHeader;


    UInt32  HttpStatus;               // New in 4.0, status for SEND_RESPONSE

    UInt32  dwReserved;               // New in 4.0

}


红糖糍粑
浏览 1295回答 3
3回答

慕哥9229398

解决这些警告的另一个“解决方案”是制作struct public。然后不会发出警告,因为编译器无法知道是否在程序集外部使用(分配)了这些字段。也就是说,“互操作”组件通常不应公开,而应为internal或private。
随时随地看视频慕课网APP
我要回答