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
- 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;
}
}