Parametri opzionali/con nome; ref/out/in (nozioni di base)
Utilizzi parametri opzionali e argomenti con nome per maggiore chiarezza; passi per riferimento con ref; restituisca valori aggiuntivi con out; tenga presente che i parametri in non sono disponibili in C# 6.
Parametri opzionali/con nome; ref/out/in (nozioni di base) è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 3 lezioni in totale.
Panoramica della lezione
Obiettivo: utilizzare parametri facoltativi e argomenti denominati per migliorare la leggibilità; comprendere ref e out. Nota: i parametri in non sono disponibili in C# 6.
Parametri facoltativi
Aggiungere valori predefiniti per una personalizzazione semplice, senza ricorrere a molti overload.
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
}
}
Argomenti denominati
Gli argomenti denominati rendono le chiamate autoesplicative e consentono di riordinarle in sicurezza.
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");
}
}
Parametro ref
ref passa una variabile per riferimento; il chiamante deve inizializzarla prima.
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
}
}
Parametro out
out consente a un metodo di restituire valori aggiuntivi tramite i parametri; il metodo deve assegnarli.
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);
}
}
Informazioni su "in" (C# 6)
Nota: i parametri in (per riferimento in sola lettura) sono stati introdotti nelle versioni successive di C#. In C# 6 è possibile:
- Passare per valore (copia) per i tipi piccoli
- Utilizzare ref solo quando è necessaria la mutazione
- Rendere i parametri dei metodi readonly per convenzione (non riassegnarli)
Nozioni di base su ref e out
Riepilogo
Riepilogo: utilizzare i parametri facoltativi per i valori predefiniti, gli argomenti denominati per maggiore chiarezza, ref per modificare i dati del chiamante e out per restituire valori aggiuntivi. C# 6 non supporta i parametri in.
Domande Frequenti
La lezione «Parametri opzionali/con nome; ref/out/in (nozioni di base)» è gratuita?
Sì — il testo completo di «Parametri opzionali/con nome; ref/out/in (nozioni di base)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 3 lezioni in totale.
Cosa imparerò in «Parametri opzionali/con nome; ref/out/in (nozioni di base)»?
Utilizzi parametri opzionali e argomenti con nome per maggiore chiarezza; passi per riferimento con ref; restituisca valori aggiuntivi con out; tenga presente che i parametri in non sono disponibili… Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C# Academy?
Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.
Quanto tempo richiede la lezione «Parametri opzionali/con nome; ref/out/in (nozioni di base)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C# Academy?
Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Firme e valori restituiti; expr-bodied; parametri opzionali/con nome; ref/out; overloading
- Parametri opzionali/con nome; ref/out/in (nozioni di base)
- Funzioni locali (nota su C# 6) e overloading