C# Error CS0646 – Cannot specify the DefaultMember attribute on a type containing an indexer

C# Error

CS0646 – Cannot specify the DefaultMember attribute on a type containing an indexer

Reason for the Error & Solution

Cannot specify the DefaultMember attribute on a type containing an indexer

If a class or other type specifies System.Reflection.DefaultMemberAttribute, it cannot contain an indexer. For more information, see .

The following sample generates 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;  
}  

Leave A Reply

Your email address will not be published. Required fields are marked *

You May Also Like

C# Compiler Error CS0442 – ‘Property’: abstract properties cannot have private accessors Reason for the Error You’ll get this error...
This is a really simple one . Below is a simple example of an enum called “Designation” defined with the...
This blog post explain the usage of the Checked Block in .NET and how you can use them in Visual...