RunUO-FR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
RunUO-FR

Forum de support pour RunUO en français.
 
AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-50%
Le deal à ne pas rater :
-50% sur les sacs à dos pour ordinateur portable Urban Factory ...
19.99 € 39.99 €
Voir le deal

 

 Le passage d'argument, entre méthodes

Aller en bas 
AuteurMessage
Gargouille




Messages : 97
Date d'inscription : 02/09/2008

Le passage d'argument, entre méthodes Empty
MessageSujet: Le passage d'argument, entre méthodes   Le passage d'argument, entre méthodes Icon_minipostedSam 6 Sep - 17:52

Nous avons vu que le nom d'une méthode est toujours suivi de parenthèses.

On y place la liste des arguments attendus par la méthode.

public void Exemple() n'attend aucun argument, on l'appelle ainsi Exemple();

public void Exemple2(int i) attend un objet de type int, on l'appelle ainsi Exemple2(4856);

public void Exemple3(int i, Mobile from, MonTimer t) attend un int, un Mobile et un MonTimer...

Les variables définies dans ces parenthèses sont des variables locales dans la méthode, c'est à dire qu'au sein de la méthode i représentera un int, from un Mobile et t un MonTimer.

Pour que ces valeurs soient utilisables par d'autres méthodes, il faudra les faire re-passer en argument à ces méthodes.

Exemple:
Code:
public void Exemple(string input)//cette méthode reçoit une string qu'elle appelle input
{
  Ecriture(input);//appelle la méthode Ecriture en passant input en argument
}

public Ecriture(string phrase)//reçoit la string mais l'appelle phrase
{
  Write.Console(phrase); // méthode qui écrit une string sur la console (très utile pour tester des scripts)
}

Mais parfois le passage d'une méthode à l'autre n'est pas géré dans la classe (ilpeut l'être dans la classe mère, ou dans un autre code, auquel nous n'avons pas accès).
Par exemple la méthode construisant un timer reçoit des arguments.
Mais l'évenement est déclenché dans la classe mère Timer, par l'appel de la méthode OnTick().
Ce n'est donc pas la méthode recevant l'argument qui appelera la seconde méthode, on n epeut pas passer les arguments.

Code:
private class MonTimer :Timer
{
  public MonTimer(int i)// ici on reçoit i lorsqu'on a appelé MonTimer(25) par exemple
  {
  }
 
  private protected OnTick()// mais ici on n epeut pas l'utiliser puisque i est une variable locale dans la méthode MonTimer()
  {
  }
}


Il faut donc passer la variable locale sur une variable de classe, cette variable de classe sera utilisable par toutes les méthodes de la classe :
Code:
private class MonTimer :Timer
{
  private int x;

  public MonTimer(int i)// ici on reçoit i lorsqu'on a appelé MonTimer(25) par exemple
  {
    x = i; // on passe la vcariable locale i dans la variable de classe x
  }

  private protected OnTick()// mais ici on n epeut pas l'utiliser puisque i est une variable locale dans la méthode MonTimer()
  {
    x++; // on peut enfin utiliser x
  }
}
Revenir en haut Aller en bas
 
Le passage d'argument, entre méthodes
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 1) Les méthodes (simples)
» 2) Les méthodes (récursives)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RunUO-FR :: Tutoriaux Scripts :: Tutoriaux C#-
Sauter vers: