Leçon 6 - Méthodes

P1 - Fondamentaux

Apprenez à créer et utiliser des méthodes pour organiser et réutiliser votre code.

Qu'est-ce qu'une méthode ?

Une méthode est un bloc de code qui accomplit une tâche spécifique. C'est comme une "boîte noire" qui reçoit des données (paramètres), effectue un traitement, et peut retourner un résultat.

Anatomie d'une méthode

Voici la structure de base d'une méthode :

C#
// [Modificateur] [Type de retour] [Nom de la méthode]([Paramètres]) public int Additionner(int nombre1, int nombre2) { int resultat = nombre1 + nombre2; return resultat; }

Méthodes sans valeur de retour (void)

Certaines méthodes ne renvoient aucune valeur, elles utilisent le type void :

C#
public void SaluerUtilisateur(string nom) { Console.WriteLine($"Bonjour {nom}!"); Console.WriteLine("Bienvenue dans notre application."); } public void AfficherSeparateur() { Console.WriteLine("=".PadLeft(40, '=')); }

Méthodes avec valeur de retour

Ces méthodes calculent et renvoient une valeur :

C#
public double CalculerAire(double longueur, double largeur) { return longueur * largeur; } public bool EstPair(int nombre) { return nombre % 2 == 0; } public string ObtenirJourSemaine(int numeroJour) { switch (numeroJour) { case 1: return "Lundi"; case 2: return "Mardi"; case 3: return "Mercredi"; case 4: return "Jeudi"; case 5: return "Vendredi"; case 6: return "Samedi"; case 7: return "Dimanche"; default: return "Jour invalide"; } }

Appeler une méthode

Pour utiliser une méthode, vous devez l'appeler avec les bons paramètres :

C#
static void Main(string[] args) { // Appel de méthode void (sans retour) SaluerUtilisateur("Alice"); AfficherSeparateur(); // Appel de méthodes avec retour double aire = CalculerAire(5.0, 3.0); Console.WriteLine($"Aire: {aire} m²"); bool estPairResult = EstPair(8); Console.WriteLine($"8 est pair: {estPairResult}"); string jour = ObtenirJourSemaine(3); Console.WriteLine($"Le jour 3 est: {jour}"); }

Paramètres optionnels

Vous pouvez définir des valeurs par défaut pour certains paramètres :

C#
public void AfficherMessage(string message, string prefixe = "INFO", bool avecTimestamp = false) { string sortie = $"[{prefixe}] {message}"; if (avecTimestamp) { sortie = $"{DateTime.Now:HH:mm:ss} " + sortie; } Console.WriteLine(sortie); } // Différentes façons d'appeler la méthode AfficherMessage("Application démarrée"); // Utilise les valeurs par défaut AfficherMessage("Erreur détectée", "ERREUR"); // Change le préfixe AfficherMessage("Début du traitement", "DEBUG", true); // Tous les paramètres

Surcharge de méthodes (Overloading)

Vous pouvez créer plusieurs méthodes avec le même nom mais des paramètres différents :

C#
// Calculer l'aire d'un carré public double CalculerAire(double cote) { return cote * cote; } // Calculer l'aire d'un rectangle public double CalculerAire(double longueur, double largeur) { return longueur * largeur; } // Calculer l'aire d'un triangle public double CalculerAire(double base_triangle, double hauteur, bool estTriangle) { return (base_triangle * hauteur) / 2; } // Utilisation double aireCarre = CalculerAire(5); // Carré 5x5 double aireRectangle = CalculerAire(6, 4); // Rectangle 6x4 double aireTriangle = CalculerAire(8, 3, true); // Triangle base=8, hauteur=3

Méthodes statiques

Les méthodes statiques appartiennent à la classe, pas à une instance particulière :

C#
public class MathUtils { public static int Max(int a, int b) { return (a > b) ? a : b; } public static double CalculerDistance(double x1, double y1, double x2, double y2) { double dx = x2 - x1; double dy = y2 - y1; return Math.Sqrt(dx * dx + dy * dy); } public static bool EstPremier(int nombre) { if (nombre < 2) return false; for (int i = 2; i <= Math.Sqrt(nombre); i++) { if (nombre % i == 0) return false; } return true; } } // Utilisation des méthodes statiques int maximum = MathUtils.Max(10, 25); double distance = MathUtils.CalculerDistance(0, 0, 3, 4); bool estPremier = MathUtils.EstPremier(17);
Méthodes statiques vs méthodes d'instance :
  • Statique : Appelée sur la classe - MathUtils.Max(a, b)
  • Instance : Appelée sur un objet - monObjet.MaMethode()
  • Les méthodes statiques ne peuvent pas accéder aux membres d'instance

Bonnes pratiques

Exercice pratique

Exercice :

Créez un programme de gestion d'une calculatrice simple avec les fonctionnalités suivantes :

  1. Une méthode pour chaque opération de base (+, -, *, /)
  2. Une méthode pour afficher le menu
  3. Une méthode pour valider les entrées
  4. Une méthode pour calculer la puissance d'un nombre

Points clés à retenir