0Pricing
C# Academy · Leçon

Paramètres facultatifs ou nommés ; ref/out/in (bases)

Utilisez des paramètres facultatifs et des arguments nommés pour plus de clarté ; transmettez par référence avec ref ; renvoyez des valeurs supplémentaires avec out ; notez que les paramètres in ne sont pas disponibles en C# 6.

Paramètres facultatifs ou nommés ; ref/out/in (bases) est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 3 leçons au total.

Présentation de la leçon

Objectif : utiliser des paramètres facultatifs et des arguments nommés pour améliorer la lisibilité ; comprendre ref et out. Remarque : les paramètres in ne sont pas disponibles en C# 6.

Paramètres facultatifs

Ajoutez des valeurs par défaut pour permettre une personnalisation simple sans multiplier les surcharges.

using System;

public static class Notifier
{
  // Optional parameter: suffix has a default value
  public static void Notify(string message, string suffix = "!")
  {
    Console.WriteLine(message + suffix);
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Notifier.Notify("Saved");          // uses "!"
    Notifier.Notify("Warning", "!!");  // overrides default
  }
}

Arguments nommés

Les arguments nommés rendent les appels explicites et permettent de les réordonner sans risque.

using System;

public static class Greeter
{
  public static void Greet(string name, string prefix, int repeat)
  {
    for (int i = 0; i < repeat; i = i + 1)
    {
      Console.WriteLine(prefix + " " + name);
    }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    // Named args improve readability and allow reordering at call site
    Greeter.Greet(name: "Ada", prefix: "Hello", repeat: 2);
    Greeter.Greet(repeat: 1, name: "Alan", prefix: "Hi");
  }
}

Paramètre ref

ref transmet une variable par référence ; l'appelant doit d'abord l'initialiser.

using System;

public static class RefDemo
{
  public static void Increment(ref int n)
  {
    n = n + 1; // modifies caller's variable
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    int value = 5;           // must be assigned before passing by ref
    RefDemo.Increment(ref value);
    Console.WriteLine("value = " + value); // 6
  }
}

Paramètre out

out permet à une méthode de renvoyer des valeurs supplémentaires par l'intermédiaire de paramètres ; la méthode doit leur affecter une valeur.

using System;

public static class OutDemo
{
  public static bool TryDivide(int a, int b, out int result)
  {
    if (b == 0)
    {
      result = 0;   // out must be assigned before return
      return false;
    }
    result = a / b;
    return true;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    int r; // not required to be assigned before passing as out
    bool ok = OutDemo.TryDivide(9, 0, out r);
    Console.WriteLine("ok=" + ok + " r=" + r);
  }
}

À propos de « in » (C# 6)

Remarque : les paramètres in (en lecture seule et transmis par référence) sont apparus dans des versions ultérieures de C#. En C# 6, vous pouvez :

  • transmettre par valeur (copie) pour les petits types ;
  • utiliser ref uniquement lorsqu'une modification est nécessaire ;
  • déclarer par convention les paramètres des méthodes readonly (ne pas les réaffecter).

Principes de base de ref et out

Vérification rapide : quelle affirmation concernant ref et out est correcte en C# 6 ?

Récapitulatif

Récapitulatif : utilisez les paramètres facultatifs pour les valeurs par défaut, les arguments nommés pour la clarté, ref pour modifier les données de l'appelant et out pour renvoyer des valeurs supplémentaires. C# 6 ne prend pas en charge les paramètres in.

Questions Fréquemment Posées

La leçon « Paramètres facultatifs ou nommés ; ref/out/in (bases) » est-elle gratuite ?

Oui — le texte complet de « Paramètres facultatifs ou nommés ; ref/out/in (bases) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « Paramètres facultatifs ou nommés ; ref/out/in (bases) » ?

Utilisez des paramètres facultatifs et des arguments nommés pour plus de clarté ; transmettez par référence avec ref ; renvoyez des valeurs supplémentaires avec out ; notez que les paramètres in ne s… Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C# Academy ?

Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 3.

Combien de temps prend la leçon « Paramètres facultatifs ou nommés ; ref/out/in (bases) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?

Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Signatures et valeurs renvoyées ; corps sous forme d’expression ; paramètres facultatifs ou nommés ; ref/out ; surcharge
  2. Paramètres facultatifs ou nommés ; ref/out/in (bases)
  3. Fonctions locales (remarque sur C# 6) et surcharge
← Retour à C# Academy