通过


编译器警告(级别 3) CS0414

分配专用字段“field”,但永远不会使用其值

注释

此警告仅在显式 生成重新生成 作业期间报告。 在 IDE 中键入期间不会将它显示为 IntelliSense 诊断的一部分。 这意味着,如果通过使用该字段或删除字段来修复警告,则警告可能会保留在错误列表中,直到您再次编译或重新编译项目。

在编译器可以验证从未引用变量的几种方案中,可能会发生此警告:

  • 为专用字段分配常量值,但随后永远不会读取。 不必要的分配可能会影响性能。 请考虑删除字段。

  • 私有或内部静态字段仅在初始化过程中被赋予常量值。 请考虑将字段更改为常值。

  • 为私有或内部字段分配常量值,并且仅在 #ifdef 指令排除的块中使用。 请考虑将字段置于 #ifdef 块中。

  • 在多个位置为私有或内部字段赋予常量值,但从未访问过。 如果不需要该字段,请考虑将其删除。 否则,请以某种适当的方式使用它。

在其他情况下,或者建议的解决方法不可接受,请使用 #pragma 0414。

以下示例显示了将生成 CS0414 的一种方法:

// CS0414
// compile with: /W3
class C
{
   private int i = 1;  // CS0414

   public static void Main()
   { }
}

注释

如果变量 i 声明为 protectedpublic未生成任何错误,因为编译器不知道派生类是否可以使用它,或者其他一些客户端代码可能会实例化该类并引用变量

另请参阅