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
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
- Signatures et valeurs renvoyées ; corps sous forme d’expression ; paramètres facultatifs ou nommés ; ref/out ; surcharge
- Paramètres facultatifs ou nommés ; ref/out/in (bases)
- Fonctions locales (remarque sur C# 6) et surcharge