Salut !! je veux passer un tableau en paramètres mais par valeur et non par référence !! mais par défaut ca le met en référence !!
private void button1_Click(object sender, EventArgs e)
{
int [] ka = new ka[10];
ka[0] = 0;
FCT ( ka);
MessageBox.Show(ka[0].ToString()); // ca donne 1 !!!!!!!!!!!!!!!!!!!
}
private void FCT( int [] ka)
{
ka[0]= 1;
}
comment faire si je veux que le messagebox retourne toujours 0 ??
hmm !! alors la solution 2 qui est interressante !! parce que moi j'ai un tableau dont je connais pas sa longeur alors je peux pas declarer des variables !! et non plus envoyer la seule valeur !! mais quand même vous pensez pas que c'est un bug ??
En fait, pour répondre à Fildomen, j'ai remarqué que quand t'ajoutes les [] à un type valeur, il se transforme aussitôt en type référence.
Par exemple, un System.Int32 devient un System.Int32[]
Les tableaux contiennent généralement beaucoup de valeurs, c pourquoi on ne les place pas sur les stack.
Ce n'est pas un bug, ils ont juste décider, comme dans plusieurs autres languages, que les tableaux passent par référence...et c'est bien pratique comme ça dans d'autres circonstances (et la plupart :)
MorpionMx:
Ben j'ai dit que c'est un bug seulement parcke j'ai crée une fonction en récursivité pour trouver les solutions du sudoku !! et ca n'a pas marché et je savais pas pourquoi même si mon code est correcte !!
BadrBadr:
Ben si c'est pratique dans d'autres circonstances on va mettre le Ref ou le Out dans les paramètres :) !!
Allé mercii tt les deux !! maintenant mon code marche nickel ;)!!