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  
Le deal à ne pas rater :
Fnac : 2 Funko Pop achetées : le 3ème offert (large sélection de ...
Voir le deal

 

 Le mot clef static

Aller en bas 
AuteurMessage
Gargouille




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

Le mot clef static Empty
MessageSujet: Le mot clef static   Le mot clef static Icon_minipostedLun 8 Sep - 10:03

Chaque instance d'une classe possède ses propres valeurs aux éléments qu'elle déclare.

On accède aux éléments en s'adressant à l'instance concernée :
Code:

// en admettant que la méthode Target existe et renvoie un mobile ciblé par le joueur
Mobile mob = Target();

//mob est une variable de type Mobile, elle a la valeur renvoyée par la méthode Target()
//Hits est une variable de type int, déclarée dans la classe Mobile
int PointsDeVieDeCetteInstanceDuMobCiblé = mob.Hits;

Certaines valeurs ne nécessitent pas d'être propres à chaque instance de la classe, ou nécessitent d'être communes à la classe, indépendament de l'instance concernée. Elles seront alors déclarées avec le mot clef static.

Exemple:

  • Vous créez un nouveau monstre...
  • Vous voulez qu'il ait deux types d'ennemis, deux races de monstres quil fuiera à vue...
  • L'un des types d'ennemis correspondant à celui qui l'a frappé en dernier
  • Le second étant constant, les dragons par exemple


Alors il faudra déclarer les variables ainsi :
Code:

//dans cet exemple, les variables ne sont pas initialisées, elles pourraient l'^tre immédiatement ou par la suite

public Mobile DernierEnnemiMortel;

public static Mobile EnnemiMortelHereditaire;

Dés lors, dans un script extérieur à cette classe, par exemple, si on veut connaitre les valeurs de ces deux variables, il faudra:

  • s'adresser à une instance pour avoir sa valeur de DernierEnnemiMortel :
    Code:

    // en admettant que la méthode Target existe et renvoie un mobile ciblé par le joueur
    Mobile targ = Target();

    //pour connaitre le DernierEnnemiMortel du mobile ciblé (targ)
    Mobile mob = targ.DernierEnnemiMortel;

  • s'adresser au type pour avoir sa valeur de EnnemiMortelHereditaire :
    Code:

    // en admettant que la méthode Target existe et renvoie un mobile ciblé par le joueur
    Mobile targ = Target();

    //pour connaitre le EnnemiMortelHereditaire du mobile ciblé (targ)
    Type type = targ.GetType();//GetType étant une méthode renvoyant le type de l'instance désignée
    Mobile mob = type.EnnemiMortelHereditaire;


Demander un élément static en s'adressant à une instance renverra une erreur.
Ce qui est static doit être accédé via le type, pas via une instance du type.



Nous n'avons parlé que des variables, mais static peut être déclaré par une méthode, une classe...

Le principe étant le même, appeler une méthode déclarant static doit se faire via le type de l'instance et pas par une instance du type.
Revenir en haut Aller en bas
 
Le mot clef static
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Le type de retour / le mot clef void

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