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#)