CS0826 de erro do compilador

Mensagem de erro

Nenhum tipo melhor encontrado para a matriz digitada implicitamente.

Elementos de matriz todos devem ser do mesmo tipo ou implicitamente conversível mesmo tipo de acordo com as regras de inferência de tipos de tipos usadas pelo compilador.O melhor tipo deve ser um dos tipos de presentes na expressão de matriz.Elementos não serão convertidos para um novo tipo, sistema autônomo object. Para uma matriz digitada implicitamente, o compilador deverá inferir a matriz de tipo com base no tipo de elementos a ele atribuído.

Para corrigir este erro

  • Atribua a matriz um tipo explícito.

  • Forneça todos os elementos da matriz do mesmo tipo.

  • Fornece conversões explícitas sobre esses elementos que podem estar causando o problema.

Exemplo

O código a seguir gera CS0826 porque a matriz de elementos são não o mesmo digitar e lógica de inferência de tipos de tipos do compilador não encontra um único tipo melhor:

// 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;
    }
}

Consulte também

Referência

Digitada implicitamente variáveis Local (C# Guia de programação)