RunUO-FR

Forum de support pour RunUO en français.
 
AccueilAccueil  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  Connexion  

Partagez | 
 

 02) Généralités C#

Aller en bas 
AuteurMessage
Gargouille



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

MessageSujet: 02) Généralités C#   Jeu 4 Sep - 1:00

Le dossier Scripts est rempli de sous-dossier, les noms sont assez parlant, le tout est bien rangé, mais il faut savoir que la dispostion des fichiers n'a pas d'autre importance que de s'y retrouver pour un humain, le compilateur C# s'en fout, on pourrait bien mettre tous les fichiers ensembles, vous pouvez les bouger, pas de soucis... Du moment que le tout reste dans le répertoire Script.



Les NAMESPACE ou espaces de noms


Ouvrez n'importe quel fichier, ouvrez en plusieurs, ormis quelques commentaires parfois, ils commenceront tous sans exceptions par des (ou un) using machin.truc; ... Et parmi eux, il y aura toujours using System;

Ce sont là des indications pour le compilateur. Celà veut dire que pour le code qui va suivre, les informations devront être recherchées dans les espaces de nom spécifiés.
L'espace de nom System est à la base de C#, il est donc incontournable.

Justement, après les using vient une ligne qui dit : namespace machin.chose ou namespace Server.truc...
Tout les codes doivent être déclarés dans un namespace, un espace de nom...

Ce système d'espaces définis est une façon d'organiser les choses, dans RunUo nous avons l'espace de noms Server.Items dans lequel sont définis les objets (les armes, armures, potions, meubles, etc..) , le namespace Server.Mobiles dans lequel se trouvent les joueurs et les monstres, le namesapce Server.Misc pour Miscellaneous, ou se retrouve tout ce qu'on ne sait pas mettre ailleurs... Le namespace Server.Gumps, Serrver.Accounting, Server.Targeting, etc...etc...
Tout les codes auraient pu être déclarés dans un unique namespace RunUO, on aurait alors eu en en-tête de nos codes que deux using, System et RunUO... Il ne s'agit que d'un classement organisationnel...

Pour illustrer ça en vitesse, sachez que si dans un code, on veut faire référence à un joueur, on aura quelquechose comme PlayerMobile from; si on a déclaré l'using Server.Mobiles, le compilateur sachant alors où trouver la définition de l'objet PlayerMobile.
Sinon, il faudra écrire le chemin d'accès dans la déclaration : Server.Mobiles.PlayerMobile from;

En pratique :
Pas d'angoisses, un bon copier-coller des using d'un autre code fera l'affaire au départ, puis vous comprendrez vite desquels vous aurez besoin, sachant qu'en mettre trop n'est pas bien génant.

Si vous faites appel à un objet dans un code, sans en spécifier le chemin, ni par using, ni explicitement, la console ne compilera pas le code, et renverra un message d'erreur vous disant que le type est introuvable.

Les namespaces sont de grands tiroirs, rien de plus, nous y rangerons des objets.
Après la déclaration namespace, il y a des crochets ouvrant, et à la toute fin du fichier, les crochets fermant correspondant... En C#, les {} et les () sont très importants.
Tout ce qui se trouve entre ces {} fera partie de ce namespace.


Les objets ou les classes


Il y a de quoi s'y perdre parfois dans les temes, vous verrez parler de classes, d'objets, de classe-objet...
C'est la même chose.
Les objets C# sont des classes, ils/elles sont défini(e)s par le mot clef class.

Rien ne peut être écrit dans un namespace qui ne soit pas inclus dans une classe. Tout est objet, tout est dans les objets.

Tout ce qui se trouve entre les {} suivant la déclaration de la classe fait partie de la classe (de l'objet)...

Dans la classe, on aura des propriétés, des méthodes qui définiront le comportement des objets. On pourra aussi y trouver... d'autres classes !


L'organisation entre les classes, principalement la notion d' HERITAGE


C'est la notion fondamentale.

Chaque classe, toute classe, hérite en droite ligne de sa classe mère. Elle hérite de tout. Cela veut dire que tout ce qui est codé dans une classe fonctionnera pour toutes les classes filles, on dit les classes dérivées, héritières...

Ainsi, dans RunUO, si vous prenez le fichier/script d'une banane, il n'y a quasiment aucun code, si ce n'est des using, une ouverture de namespace, et une classe presque vide. On y code juste le nom et le poids...
Pourtant en jeu, lorsque l'on lcique sur la banane, on la mange, lorsqu'on les empile, elles s'empilent, lorsqu'on glisse le curseur dessus, on voit le nom...
Tout ces comportement sont scriptés dans l'objet (la classe) BaseFood, et l'objet Banana hérite de ces comportements. D'ailleurs, certains comportements ne sont pas définis dans BaseFood, mais dans Item. Mais BaseFood dérive d'Item, hérite de ses propriètès et les transmet à son tour à Banana...

C'est LE truc à comprendre. Car dans un premier temps, coder reviendra surtout à modifier un héritage, avant de vraiment coder des choses nouvelles.

L'héritage d'une classe se défini ainsi :
Citation :
public/private class Machin : Truc
L'héritage ne peut être qu'unique, si vous voyez d'autres indications après Truc, ce sont des interfaces, vous verrez ça plus tard...

Sachez enfin qu'en c# il y a pas Adam et Eve mais object, la méta classe, par défaut, si on n'indique rien, une classe hérite de la classe object.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
02) Généralités C#
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Réaliser une page d'accueil généralité
» Affichage / page d'accueil / généralités: HYPERLIEN
» Généralité
» Mettre une image de fond dans généralité
» Cadre du menu généralité .

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