Errore del compilatore CS0826
Impossibile trovare il tipo migliore per la matrice tipizzata implicitamente.
Tutti gli elementi di matrice devono essere dello stesso tipo o implicitamente convertibili allo stesso tipo secondo le regole di inferenza dei tipi utilizzate dal compilatore. Il tipo migliore deve essere uno dei tipi presenti nell'espressione di matrice. Gli elementi non saranno convertiti in un tipo nuovo ad esempio object. Per una matrice tipizzata implicitamente, il compilatore deve inferire il tipo di matrice in base al tipo di elementi assegnati.
Per correggere l'errore
Assegnare alla matrice un tipo esplicito.
Assegnare a tutti gli elementi di matrice lo stesso tipo.
Fornire cast espliciti per gli elementi che potrebbero essere la causa del problema.
Esempio
Nel codice seguente viene generato l'errore CS0826 perché gli elementi di matrice non sono tutti dello stesso tipo e la logica di inferenza dei tipi del compilatore non trova un solo tipo migliore:
// 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;
}
}
Vedere anche
Riferimenti
Variabili locali tipizzate in modo implicito (Guida per programmatori C#)