C# Error CS0836 – Cannot use anonymous type in a constant expression

C# Error

CS0836 – Cannot use anonymous type in a constant expression

Reason for the Error & Solution

Cannot use anonymous type in a constant expression.

The only things allowed in a constant expression are named constants, literals, and mathematical expressions that combine constant expressions.

To correct this error

  1. Make the anonymous type a named type.

Example

The following example shows one way to generate CS0836:

// cs0836.cs  
using System;  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]  
public class A : Attribute  
{  
    public A(object obj)  
    {  
    }  
}  
  
[A(new { })] // CS0836  
public class B  
{  
}  
  
public class Test  
{  
    public static int Main()  
    {
        return 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...