您正在查看: C# 分类下的文章

编译器警告(等级 4)CS0429

错误消息检测到无法访问的表达式代码

每当无法访问代码中某个表达式的一部分时,便会发生此错误。在下面的示例中,条件 false && myTest() 满足此条件,因为 myTest() 方法因 && 运算符左边始终为 false 这一事实而永远不会被计算。只要 && 运算符将 false 语句计算为 false,它便会停止计算,并且永远不会计算右边。

示例

下面的代码生成 CS0429。

 复制代码
// CS0429.cs
public class cs0429 
{
 public static void Main() 
 {
  if (false && myTest())  // CS0429
  // Try the following line instead:
  // if (true && myTest())
  {
  }
  else
  {
int i = 0;
i++;
  }
 }

static bool myTest() { return true; }
}

编译器警告(等级 4)CS0628

错误消息“member”:在密封类中声明了新的保护成员

sealed 类无法引入 protected 成员,因为没有其他类能够从 sealed 类继承并使用 protected 成员。

下面的示例生成 CS0628:

 复制代码
// CS0628.cs
// compile with: /W:4
sealed class C
{
protected int i;// CS0628
}

class MyClass
{
public static void Main()
{
}
}

编译器警告(等级 4)CS0649

错误消息从未对字段“field”赋值,字段将一直保持其默认值“value”

编译器检测到未初始化且从未被赋值的私有字段声明或内部字段声明。

下面的示例生成 CS0649:

 复制代码
// CS0649.cs
// compile with: /W:4
using System.Collections;

class MyClass
{
Hashtable table; // CS0649
// You may have intended to initialize the variable to null
// Hashtable table = null;

// Or you may have meant to create an object here
// Hashtable table = new Hashtable();

public void Func(object o, string p)
{
// Or here
// table = new Hashtable();
table[p] = o;
}

public static void Main()
{
}
}

编译器警告(等级 4)CS0028

错误消息“function declaration”的签名错误,不能作为入口点

Main 的方法声明无效:声明所使用的签名无效。Main 必须声明为静态的并且它必须返回 int 或 void。有关更多信息,请参见 Main() 和命令行参数(c# 编程指南)。

下面的示例生成 CS0028:

 复制代码
// CS0028.cs
// compile with: /W:4 /warnaserror
public class a
{
 public static double Main(int i)// CS0028
 // Try the following line instead:
 // public static void Main()
 {
 }
}

编译器警告(等级 4)CS0078

错误消息“l”后缀很容易与数字“1”混淆 -- 为清楚起见,请使用“L”

编译器在检测到转换到的 long 所使用的是小写 l 而不是大写 L 时发出警告。

下面的示例生成 CS0078:

 复制代码
// CS0078.cs
// compile with: /W:4
class test {
public static void TestL(long i)
{
}

public static void TestL(int i)
{
}

public static void Main()
{
TestL(25l);// CS0078
// try the following line instead
// TestL(25L);
}
}