i parametri passati al metodo possono anche essere opzionali, cioé é possibile definire un valore predefinito (default) del parametro se questo non viene passato.

sintassi:
modificatore_accesso tipo_valore NOME (tipovalori nomeparametro = valore di default, ...) parametro opzionale con valore di default


esempio: esempio di visualizzazione a seconda dei parametri passati
private static void Process(int p_1 = 10, string p_2 = "prova", double p_3 = 12.34) definisco metodo mettendo alcuni valori di default per i parametri
{

Console.WriteLine("Parametri: {0}, {1}, {2}", p_1, p_2, p_3);
}

metodo con diversi parametri
Process(1, "hello", 5.6); → Parametri: 1, hello, 5.6
Process(1, "hello"); → Parametri: 1, hello, 12.34
Process(1); → Parametri: 1, prova, 12.34
Process(); → Parametri: 10, prova, 12.34