コンパイラ エラー CS0542

更新 : 2007 年 11 月

エラー メッセージ

'user-defined type' : メンバ名をそれを囲む型の名前と同じにすることはできません。

1 つの名前が同じ構成要素で複数回使用されました。このエラーは、コンストラクタに間違って戻り値の型を挿入することにより発生する場合があります。

次の例では 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()
   {
   }
}