Freezedevil
Lieutenant
- Registriert
- Mai 2011
- Beiträge
- 640
Hi,
ich möchte eine bestehende Methode um einen Defaultparameter erweitern. Dabei möchte ich jedoch erreichen, dass bestehende Aufrufe gültig bleiben, ich die Methode jedoch mit dem zusätzlichen Parameter aufrufen kann, jedoch trotzdem von den bestehenden Defaultparametern Gebrauch machen kann. Am Beispiel wird denke ich deutlich worauf ich hinaus will.
bestehende Methode
Ich möchte jetzt noch einen bool mitgeben und mir sind dafür die folgenden Möglichkeiten eingefallen:
Variante a) bricht möglicherweise die Kompatibilität zu bestehenden Aufrufen
Variante b) zwingt mich dazu s3 und s4 zu übergeben wenn ich b übergeben will -> selbes Problem wie c)
Variante c) falls sich die Standardbelegung ändert hab ich jetzt zwei Stellen an denen ich sie ändern muss
Irgendwie stellen mich alle drei Varianten nicht zufrieden, wobei c) anscheinend noch die beste ist.
Von dem Thread erhoffe ich mir weitere Ideen/Vorschläge wie ich mein Problem lösen kann.
ich möchte eine bestehende Methode um einen Defaultparameter erweitern. Dabei möchte ich jedoch erreichen, dass bestehende Aufrufe gültig bleiben, ich die Methode jedoch mit dem zusätzlichen Parameter aufrufen kann, jedoch trotzdem von den bestehenden Defaultparametern Gebrauch machen kann. Am Beispiel wird denke ich deutlich worauf ich hinaus will.
bestehende Methode
Code:
void m(string s1, string s2, string s3="foo", string s4="bar");
Ich möchte jetzt noch einen bool mitgeben und mir sind dafür die folgenden Möglichkeiten eingefallen:
Code:
a)
void m(string s1, string s2, bool b=false, string s3="foo", string s4="bar");
b)
void m(string s1, string s2, string s3="foo", string s4="bar", bool b=false);
c)
void m(string s1, string s2, bool b) {
m(s1, s2, "foo", "bar", b);
}
void m(string s1, string s2, string s3="foo", string s4="bar", bool b=false);
Variante a) bricht möglicherweise die Kompatibilität zu bestehenden Aufrufen
Variante b) zwingt mich dazu s3 und s4 zu übergeben wenn ich b übergeben will -> selbes Problem wie c)
Variante c) falls sich die Standardbelegung ändert hab ich jetzt zwei Stellen an denen ich sie ändern muss
Irgendwie stellen mich alle drei Varianten nicht zufrieden, wobei c) anscheinend noch die beste ist.
Von dem Thread erhoffe ich mir weitere Ideen/Vorschläge wie ich mein Problem lösen kann.