Compilerfehler CS0826
Aktualisiert: November 2007
Fehlermeldung
Es wurde kein optimaler Typ für das implizit typisierte Array gefunden.
No best type found for implicitly typed array.
Gemäß den vom Compiler verwendeten Rückschlussregeln müssen Arrayelemente alle denselben Typ aufweisen bzw. implizit in diesen Typ konvertierbar sein. Der optimale Typ muss einer der im Arrayausdruck vorhandenen Typen sein. Elemente werden nicht in einen neuen Typ wie object konvertiert. Bei implizit typisierten Arrays muss der Compiler den Arraytyp anhand des Typs der ihm zugewiesenen Elemente ableiten.
So beheben Sie diesen Fehler
Weisen Sie dem Array einen expliziten Typ zu.
Weisen Sie allen Arrayelementen denselben Typ zu.
Stellen Sie explizite Umwandlungen für die Elemente bereit, die das Problem verursachen könnten.
Beispiel
Der folgende Code führt zu Fehler CS0826, da die Arrayelemente unterschiedliche Typen aufweisen und die Rückschlusslogik des Compilers keinen einzelnen optimalen Typ finden kann:
// cs0826.cs
public class C
{
public static int Main()
{
var x = new[] { 1, "str" }; // CS0826
char c = 'c';
short s1 = 0;
short s2 = -0;
short s3 = 1;
short s4 = -1;
var array1 = new[] { s1, s2, s3, s4, c, '1' }; // CS0826
return 1;
}
}
Siehe auch
Referenz
Implizit typisierte lokale Variablen (C#-Programmierhandbuch)