Прочитать на английском

Поделиться через


Ошибка компилятора CS0646

Невозможно указать атрибут DefaultMember для типа, содержащего индексатор.

Если класс или другой тип указывает System.Reflection.DefaultMemberAttribute, он не может содержать индексатор. Дополнительные сведения см. в разделе Свойства.

В следующем примере возникает ошибка CS0646.

// CS0646.cs  
// compile with: /target:library  
[System.Reflection.DefaultMemberAttribute("x")]   // CS0646  
class MyClass  
{  
   public int this[int index]   // an indexer  
   {  
      get  
      {  
         return 0;  
      }  
   }  
  
   public int x = 0;  
}  
  
// OK  
[System.Reflection.DefaultMemberAttribute("x")]  
class MyClass2  
{  
   public int prop  
   {  
      get  
      {  
         return 0;  
      }  
   }  
  
   public int x = 0;  
}  
  
class MyClass3  
{  
   public int this[int index]   // an indexer  
   {  
      get  
      {  
         return 0;  
      }  
   }  
  
   public int x = 0;  
}