Une remarque pertinente ? Une critique impertinente ? Un lynchage en règle ? Une invitation sous les tropiques ? Ecrivez-moi ! |
|
Conçu et enseigné tel qu'en lui même, avec pertes, fracas et
humour de qualité supérieure par Christophe Darmangeat dans le M2 PISE du Master MECI (Université Paris 7) |
|
LE COURS 10. Les graphismes
11. Les menus
AIDES-MÉMOIRES • Fonctions et méthodes
CHOSES DIVERSES Souvent Posées Questions
Liens utiles
|
Référence du langage
Fonctions et méthodesRelevez vos sièges, attachez vos ceintures, et saisissez à pleines mains votre sac en plastique. Nous entrons dans une zone de turbulences. Nous avons découvert avec C# ce que sont des objets, par opposition aux variables simples (ou indicées, ou structurées) que nous connaissions en programmation procédurale. Les objets ont cette particularité étonnante de posséder des morceaux de code « pré-embarqué » : les méthodes (je ne parle pas de la possibilité qu'ont certains d'entre eux, en plus, de gérer des événements. Cette faculté ne concerne pas ce chapitre). Eh bien, une particularité de la programmation objet, c'est que tout finit par devenir un objet, ce qui, au départ, n'en était pas un. Ainsi, mais ce n'est qu'un exemple parmi bien d'autres, les simples variables ordinaires sont considérées par C# comme des instances des classes (assimilées aux types) qui ont servi à les fabriquer. Une variable de type String est donc, pour C#, également une instance de la classe String. Une variable de type Integer est également une instance de la classe Integer, etc. Par conséquent, les simples variables peuvent, elles aussi, être traitées comme des objets (je dirais même : elles doivent l'être). En particulier, la classe String, la classe Integer, et toutes les autres classes formées à partir des types simples, sont dotées, comme toutes les autres classes, d'un certain nombre de méthodes. Celles-ci ont été conçues de manière à recouvrir à peu près les anciennes fonctions traditionnelles prédéfinies pour ces variables. À partir de là, les concepteurs des langages objet ont suivi deux stratégies différentes :
Faisons donc un rapide (et non exhaustif) tour du propriétaire. 1. Méthodes de chaînesOn trouve bien sûr en tête de gondole les deux incontournables :
Il existe bien sûr une floppée d'autre méthodes pour traiter les chaînes. Parmi celles-ci, je signale :
Et puis, deux méthodes inattendues, mais qui sont extrêmement pratiques pour gérer la conversion de données vers un fichier texte géré en délimité (C# n'est en revanche pas du tout pratique pour gérer des champs de largeur fixe) :
2. Méthodes de nombresÀ côté des chaînes, les nombres semblent faire pâle figure. Une variable déclarée dans un type numérique ne possèdera en effet qu'une quantité ridicule de méthodes accessibles. Mais que les matheux se rassurent, ils n'ont pas été oubliés. Ces méthodes sont en fait regroupées dans une classe appelée math ; c'est là qu'il faut donc aller les chercher, en passant le nombre à traiter en paramètre. Ainsi, pour obtenir la racine carrée de toto, on écrira : Math.Sqrt(toto) J'en profite pour signaler que la génération de nombres aléatoires pose une petite difficulté (vite surmontée). Il faut en effet distinguer la série de nombres aléatoires que le programme peut générer, des différents nombres au sein de cette série. Pour bien faire, il faut donc commencer par générer la série, puis ensuite, demander à la machine d'aller y piocher les nombres les uns après les autres.<.p> La génération d'une série s'effectue via l'instanciation de la classe Random : Random truc = new Random(); Ensuite, on va chercher le nombre suivant de la série via la méthode Next : int de = truc.Next(1, 7); La méthode Next admet donc comme paramètres les bornes du nombre à générer ; la première est inclue, la seconde exclue. On peut également ne l'utiliser qu'un seul paramètre : dans ce cas, il correspond à la borne supérieure, et la borne inférieure est considérée comme valant zéro. |