J'essaye le code suivant. La ligne avec l'erreur est indiquée.
int[] myfunction()
{
{
//regular code
}
catch (Exception ex)
{
return {0,0,0}; //gives error
}
}
Comment puis-je retourner un littéral de tableau comme des littéraux de chaîne?
const
champs. Ce n'est pas le cas avec la syntaxe d'initialisation de tableau.Réponses:
Renvoyez un tableau
int
comme celui-ci:return new int [] { 0, 0, 0 };
Vous pouvez également taper implicitement le tableau - le compilateur en déduira qu'il devrait l'être
int[]
car il ne contient que desint
valeurs:return new [] { 0, 0, 0 };
la source
new int [] {0,0,0}
fonctionne également. Ce serait plus clair à mon avis.Blorgbeard est correct, mais vous pourriez également penser à utiliser la nouvelle classe Tuple pour .NET 4.0. J'ai trouvé qu'il était plus facile de travailler avec un nombre défini d'articles à retourner. Comme si vous devez toujours renvoyer 3 éléments dans votre tableau, un tuple à 3 int indique clairement ce que c'est.
return new Tuple<int,int,int>(0,0,0);
ou simplement
return Tuple.Create(0,0,0);
la source
return new List<int>(new int[]{0,0,0});
List<int>(Enumerable.Repeat(0, 3))
mieux?si le tableau a une taille fixe et que vous voulez en renvoyer un nouveau rempli de zéros
return new int[3];
la source