Error del compilador CS0826
Actualización: noviembre 2007
Mensaje de error
No se encontró el mejor tipo para la matriz con tipo implícito.
No best type found for implicitly typed array.
Todos los elementos de matriz deben ser del mismo tipo o ser convertibles implícitamente al mismo tipo, según las reglas para inferencia de tipo utilizadas por el compilador. El mejor tipo debe ser uno de los que aparece en la expresión de matriz. Los elementos no se convertirán en un nuevo tipo como object. Para una matriz con tipo implícito, el compilador debe inferir el tipo de matriz basándose en el tipo de elementos que tiene asignados.
Para corregir este error
Asigne a la matriz un tipo explícito.
Asigne a todos los elementos de matriz el mismo tipo.
Proporcione conversiones explícitas en los elementos que pueden ser la causa del problema.
Ejemplo
El código siguiente genera el error CS0826 porque los elementos de matriz no son todos del mismo tipo y la lógica de inferencia de tipo del compilador no encuentra un tipo mejor único:
// 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;
}
}
Vea también
Referencia
Variables locales con asignación implícita de tipos (Guía de programación de C#)