2

PHP オプション パラメータを使用して、パラメータを送信しない場合、デフォルト値が割り当てられます。

public function getCustomer(id, optionalMessage = "(no message)") {
    ...
}

C# では、通常、これをC# メソッドのオーバーロードで解決します。たとえば、次のようになります。

public void GetCustomer(int id) 
{
    ...
}

public void GetCustomer(int id, string optionalMessage)
{
    ...
}

PHP の例のように、C# にもオプションのパラメーターを実行するための甘い構文がありますか?

4

2 に答える 2

8

C# 3.0 にはありません。この機能は、C# 4.0 のシートにあります。こちらを参照してください。

今のところ、さまざまなオーバーロードを使用する必要があります。

public void Foo(int a) {Foo(a, "");}
public void Foo(int a, string b) {...}

提案された構文は次のようになります。

public void Foo(int a, string b = "") {...}

次のいずれかで呼び出されます。

Foo(123); // use default b
Foo(123, "abc"); // optional by position
Foo(123, b: "abc"); // optional  by name
于 2009-03-16T14:08:50.250 に答える