Partager via


Erreur du compilateur CS0826

Mise à jour : novembre 2007

Message d'erreur

Aucun meilleur type n'a été trouvé pour le tableau implicitement typé.
No best type found for implicitly typed array.

Tous les éléments de tableau doivent être du même type ou implicitement convertible au même type selon les règles d'inférence de type utilisées par le compilateur. Le meilleur type doit être l'un des types présents dans l'expression de tableau. Les éléments ne seront pas convertis en un nouveau type tel qu'object. Pour un tableau implicitement typé, le compilateur doit déduire le type de tableau basé sur le type d'éléments qui lui sont assignés.

Pour corriger cette erreur

  • Donnez un type explicite au tableau.

  • Donnez le même type à tous les éléments de tableau.

  • Fournissez des casts explicites aux éléments qui peuvent être à l'origine du problème.

Exemple

Le code suivant génère CS0826 car les éléments de tableau ne sont pas tous du même type et la logique d'inférence de type du compilateur ne trouve pas de meilleur type unique :

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

Voir aussi

Référence

Variables locales implicitement typées (Guide de programmation C#)