Errore del compilatore CS0646

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile specificare l'attributo DefaultMember in un tipo contenente un indicizzatore.
Cannot specify the DefaultMember attribute on a type containing an indexer

Se una classe o un altro tipo specifica System.Reflection.DefaultMemberAttribute, non può contenere un indicizzatore. Per ulteriori informazioni, vedere Proprietà.

Il seguente codice di esempio genera l'errore 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;
}