Kann ich Standardparameter in C# angeben?Kann ich Parametern oder optionalen Parametern in C# -Funktionen einen Standardwert zuweisen?
In C:
void fun(int i = 1)
{
printf("%d", i);
}
Können wir Parameter einen Standardwert geben? Ist es in C# möglich? Wenn ja, können wir Überlastungsfunktionen vermeiden?
Es ist immer eine schlechte Übung, einen optionalen Parameter zu einer bestehenden Funktion hinzuzufügen. Wenn Sie an einem Projekt arbeiten, das die Klasse mit einer Funktion referenzieren muss und wir einen Parameter mit einem optionalen Wert geändert haben, kann es eine Laufzeitausnahme auslösen, dass die Methode nicht gefunden wird.
Dies ist, weil wir berücksichtigen, dass, wenn wir einen zusätzlichen optionalen Wert hinzufügen, keine Codeänderung erforderlich ist, wenn die Funktion an vielen Stellen verwendet wird.
Add(10, 10);
Aber wenn wir einen optionalen Parameter wie folgt hinzufügen,
function Add(int a, int b, int c = 0);
dann der Compiler
Add(10, 10, 0);
erwartet:
function Add(int a, int b);
Dies wird unter Verwendung von auf diese Weise aufgerufen werden Eigentlich rufen wir an wie diese Add(10, 10)
und diese Funktion wird nicht in dieser Klasse verfügbar sein und verursacht eine Laufzeit Ausnahme.
Dies passiert, während ein neuer Parameter zu einer Funktion hinzugefügt wird, die von vielen Orten aufgerufen wird, und ich bin mir nicht sicher, dass dies jedes Mal passieren wird. Aber ich schlage vor, Sie überladen die Funktion.
Immer müssen wir die Methode überladen, die einen optionalen Parameter hat. Wenn Sie mit Funktionen arbeiten, die mehr als einen optionalen Parameter haben, ist es sinnvoll, den Wert mit dem Namen des Parameters zu übergeben.
function Add(int a, int b, int c = 0);
Es ist immer gut, diese Funktion auf folgende Weise aufzurufen.
Add(10, 20, c:30);
Haben Sie es versucht? –
Das ist C++, nicht C. – leppie
Was Sie fragen? .. –