Compilerfehler CS0826Compiler Error CS0826

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.Array elements must all be the same type or implicitly convertible to the same type according to the type inference rules used by the compiler. Der optimale Typ muss einer der im Arrayausdruck vorhandenen Typen sein.The best type must be one of the types present in the array expression. Elemente werden nicht in einen neuen Typ wie object konvertiert.Elements will not be converted to a new type such as object. Bei implizit typisierten Arrays muss der Compiler den Arraytyp anhand des Typs der ihm zugewiesenen Elemente ableiten.For an implicitly typed array, the compiler must infer the array type based on the type of elements assigned to it.

So beheben Sie diesen FehlerTo correct this error

  • Weisen Sie dem Array einen expliziten Typ zu.Give the array an explicit type.

  • Weisen Sie allen Arrayelementen denselben Typ zu.Give all array elements the same type.

  • Stellen Sie explizite Umwandlungen für die Elemente bereit, die das Problem verursachen könnten.Provide explicit casts on those elements that might be causing the problem.

BeispielExample

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:The following code generates CS0826 because the array elements are not all the same type, and the compiler's type inference logic does not find a single best type:

// 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 auchSee Also

Implizit typisierte lokale VariablenImplicitly Typed Local Variables