2009-07-30 10 views
16

In anderen Sprachen I wird standardmäßig die Methodensignatur wieC# default Parameter

cookEgg(boolean hardBoiled = true) 

einrichten kann das auf true hardboiled Parameter, wenn ich nicht einen Parameter in dem Methodenaufruf erhalten. Wie würde ich das in C# erreichen?

Vielen Dank

Antwort

30

Derzeit müssen Sie die Methode überlasten:

void cookEgg(bool hardBoiled) { ... } 
void cookEgg() { cookEgg(true); } 

C# 4.0 wird optionale Argumente hinzufügen - Sie werden in der Lage sein, Code zu schreiben, genau wie in der ursprünglichen Probe, und es wird funktionieren, wie Sie es erwarten würden. Diese

+1

Ich freue mich auf diese Funktion tbh. Es ist eher ärgerlich, eine überladene Methode zu haben, um diese Funktion im Moment zu haben. Ich hoffe auch auf statische Erweiterungsmethoden (Erweiterung einer statischen Klasse, wie ... System.String oder etwas). – Zack

+0

Ich muss etwas vermissen, wie Sie leicht Erweiterungsmethoden für System.String in C# 3.0 definieren können. –

2

ist nicht das, was Sie genau sehen, aber ich denke, params Argument eine andere Antwort.

void test(params int []arg) { } 
Verwandte Themen