Errore del compilatore CS0836

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile utilizzare il tipo anonimo in un'espressione costante.
Cannot use anonymous type in a constant expression.

Gli unici oggetti consentiti in un'espressione costante sono costanti, valori letterali ed espressioni matematiche denominati che si combinano in espressioni costanti.

Per correggere l'errore

  • Rendere denominato il tipo anonimo.

Esempio

Nell'esempio riportato di seguito viene illustrato un sistema per generare l'errore 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;
    }
}