C# Error CS0570 – ‘{0}’ is not supported by the language

C# Error

CS0570 – ‘{0}’ is not supported by the language

Reason for the Error & Solution

Property, indexer, or event ‘name’ is not supported by the language; try directly calling accessor method ‘name!’

This error occurs when using imported metadata that was generated by another compiler. Your code attempted to use a class member that the compiler cannot process.

Example 1

The following C++ program uses an attribute, RequiredAttributeAttribute, which may not be consumed by other languages.

// CPP0570.cpp  
// compile with: /clr /LD  
  
using namespace System;  
using namespace System::Runtime::CompilerServices;  
  
namespace CS0570_Server {  
   [RequiredAttributeAttribute(Int32::typeid)]
   public ref struct Scenario1 {  
      int intVar;  
   };  
  
   public ref struct CS0570Class {  
      Scenario1 ^ sc1_field;  
  
      property virtual Scenario1 ^ sc1_prop {  
         Scenario1 ^ get() { return sc1_field; }  
      }  
  
      Scenario1 ^ sc1_method() { return sc1_field; }  
   };  
};  

Example 2

The following sample generates CS0570.

// CS0570.cs  
// compile with: /reference:CPP0570.dll  
using System;  
using CS0570_Server;  
  
public class C {  
   public static int Main() {  
      CS0570Class r = new CS0570Class();  
      r.sc1_field = null;   // CS0570  
      object o = r.sc1_prop;   // CS0570  
      r.sc1_method();   // CS0570  
   }  
}  

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...