je teste un code en C# à partir de Visual Studio Express 2008:Pourquoi ce code ne compile-t-il pas? - affectation d'objet, appel, incrément, décrément et nouveaux peuvent être utilisés comme instruction
delegate void Hm(int k);
static void Main(string[] args)
{
char[] m = new char[10];
m[0] = 'H'; m[5] = 'M';
m[1] = 'o'; m[6] = 'u';
m[2] = 'l'; m[7] = 'n';
m[3] = 'a'; m[8] = 'd';
m[4] = ' '; m[9] = 'o';
unsafe { fixed (char* p = m) { Hm H = (k) => recurd(k, p); H(0); } }
Console.ReadLine();
}
static unsafe int recurd(int i, char* p)
{
Console.WriteLine(p[i]);
if (i == 10) return 0; else return recurd(i + 1, p);
}
Il compile parfaitement, mais si je fais un peu de changement dans la fonction « recurd »:
static unsafe int recurd(int i, char* p)
{
Console.WriteLine(p[i]);
i == 10 ? 0 : recurd(i + 1, p);
// if (i == 10) return 0; else return recurd(i + 1, p);
}
Je suis une erreur qui dit: « Juste les expressions d'affectation d'objets, d'appel, incrément, décrément et nouveaux peuvent être utilisés comme instruction » (C'est une traduction de l'espagnol).
Pourquoi j'obtiens cette erreur? Comment puis-je le réparer?
c'est vrai, j'ai essayé avec le mot "retour" et j'obtiens la même erreur :( –
je l'ai résolu comme tu as dit ça marche, merci –