Ein einfacher Weg, der es Ihnen ermöglicht, auf Folgendes zu verzichten beliebige Parameter en jede Position nutzt die Vorteile von löschbare Typen wie folgt:
public void PrintValues(int? a = null, int? b = null, float? c = null, string s = "")
{
if(a.HasValue)
Console.Write(a);
else
Console.Write("-");
if(b.HasValue)
Console.Write(b);
else
Console.Write("-");
if(c.HasValue)
Console.Write(c);
else
Console.Write("-");
if(string.IsNullOrEmpty(s)) // Different check for strings
Console.Write(s);
else
Console.Write("-");
}
Strings sind bereits nullbare Typen und benötigen daher nicht die ? .
Sobald Sie diese Methode haben, sind die folgenden Aufrufe alle gültig :
PrintValues (1, 2, 2.2f);
PrintValues (1, c: 1.2f);
PrintValues(b:100);
PrintValues (c: 1.2f, s: "hello");
PrintValues();
Wenn Sie eine Methode auf diese Weise definieren, haben Sie die Freiheit, genau die Parameter zu setzen, die Sie wollen, indem Sie Namensgebung sie. Weitere Informationen zu benannten und optionalen Parametern finden Sie unter dem folgenden Link:
Benannte und optionale Argumente (C# Programmierhandbuch) @ MSDN