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