更新:2007 年 11 月

错误消息

“user-defined type”:成员名称不能与它们的封闭类型相同

某一名称在同一构造中多次使用。造成此错误的原因可能是因疏忽而将返回类型放在了构造函数中。

下面的示例生成 CS0542:

 复制代码
// CS0542.cs
class F
{
   // Remove void from F() to resolve the problem.
   void F()   // CS0542, same name as the class
   {
   }
}

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

如果您的类被命名为“Item”,并且有一个声明为 this 的索引器,您可能会遇到此错误。在发出的代码中为默认索引器给出的名称是“Item”,从而导致冲突。

 复制代码
// CS0542b.cs
class Item
{
   public int this[int i]  // CS0542
   {
      get
      {
         return 0;
      }
   }
}

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