有没有办法在perl / python中添加命名参数
例如
object.method(arg1 => value1, arg2 => value2, arg3 => 0);
在C#4.0之前的C#中?
答案 0 :(得分:14)
方法命名参数是C#4.0功能。 (您不能在C#< 4.0中使用方法可选参数
答案 1 :(得分:4)
在C#4.0之前是不可能的。
顺便说一句,没有C#2.5这样的东西。答案 2 :(得分:0)
虽然不是命名参数的精确匹配,但C#3.0中有一些类似于“object initializers”的构造函数可以让您在使用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 get
但protected set
属性(您无法通过此方法初始化属性)。这可以使您的代码更具可读性,但不会达到命名参数的程度。