Ich verfeinere meinen Code und stelle fest, dass ich an einigen Stellen optionale Parameter mit dem Standardwert einer leeren Zeichenfolge hatte. Ich änderte das zu einem Standardwert von der Klasse für leere Schnur und rate was! Anscheinend gibt es einen Unterschied zwischen leeren Anführungszeichen und string.Empty
. Was die Ente?! (Tippfehler gemeint)
Kann mir jemand erklären, warum die Ente Khaboom
arbeitet und Bazinga
nicht?!
Die Fehlermeldung wimmert dies:
Der Standardparameterwert für 'Parameter' muss eine Kompilierzeitkonstante sein.
Nun ... Es ist !
Ein Standardwert muss einer der folgenden Arten von Ausdrücken sein:
- ein konstanter Ausdruck;
- ein Ausdruck der Form new ValType (), wobei ValType ein Werttyp ist, z. B. eine enum oder eine struct;
- ein Ausdruck des Formularstandards (ValType), wobei ValType ein Werttyp ist.
Da string.Empty
keines dieser Dinge ist, ist es nicht erlaubt.
Standardparameterwerte müssen Konstanten sein, String.Empty ist jedoch ein schreibgeschütztes Feld.
Tags und Links c# optional-parameters