Compilerfehler CS0836

Aktualisiert: November 2007

Fehlermeldung

In einem konstanten Ausdruck kann kein anonymer Typ verwendet werden.
Cannot use anonymous type in a constant expression.

In konstanten Ausdrücken sind nur benannte Konstanten, Literale und mathematische Ausdrücke, die konstante Ausdrücke kombinieren, erlaubt.

So beheben Sie diesen Fehler

  • Wandeln Sie den anonymen Typ in einen benannten Typ um.

Beispiel

Das folgende Beispiel zeigt eine Möglichkeit, den Fehler CS0836 hervorzurufen:

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