2

perl/python のように名前付き引数を持つ方法はありますか

例えば

object.method(arg1 => value1, arg2 => value2, arg3 => 0);

C# 4.0 より前の C# では?

4

3 に答える 3

14

メソッドの名前付き引数は C# 4.0 の機能です。(C# < 4.0 ではメソッドのオプション パラメーターを使用できません)

于 2009-11-10T13:56:02.470 に答える
4

C# 4.0 より前では不可能です。

ところで、C# 2.5 のようなものはありません。

于 2009-11-10T13:57:02.217 に答える
0

名前付き引数と完全に一致するわけではありませんが、C# 3.0 には、演算子を使用するときにパブリック プロパティの値を定義できる、 "オブジェクト初期化子new" と呼ばれる類似のコンストラクターがあります。これにより、次のようなことができます。

Person p = new Person()
{
    FirstName = "John",
    LastName = "Doe",
    Address = new Address()
    {
        Street = "1234 St.",
        City = "Phoenix"
    }
};

これを利用するには、オペレーターを呼び出しますnew(メソッドでは機能しません)。設定するプロパティには、これを行うために必要な同じアクセス権が必要です。

Person p = new Person();

p.FirstName = "John";
p.LastName = "Doe";

Address a = new Address();
a.Street = "1234 St.";
a.City = "Phoenix";

p.Address = a;

したがって、これは回避できませんpublic getprotected set、プロパティです (このメソッドを介して初期化されたプロパティのみを作成することはできません)。これにより、名前付き引数ほどではありませんが、コードが読みやすくなります。

于 2012-09-07T17:53:40.257 に答える