Есть ли способ иметь именованные аргументы, как в Perl/PythonПоддерживает ли C# 2.0-3.0 аргументы поддержки методов?
, например
object.method(arg1 => value1, arg2 => value2, arg3 => 0);
в C# до C# 4.0?
Есть ли способ иметь именованные аргументы, как в Perl/PythonПоддерживает ли C# 2.0-3.0 аргументы поддержки методов?
, например
object.method(arg1 => value1, arg2 => value2, arg3 => 0);
в C# до C# 4.0?
Метод с именем аргументы - это функция C# 4.0. (Вы не можете иметь необязательные параметры метода в C# < 4.0)
Это невозможно сделать до C# 4.0.
Кстати, нет такой вещи, как C# 2.5.
Хотя не точное соответствие для именованных аргументов, в конструкторе 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
свойства (вы не можете сделать свойство инициализирован только с помощью этого метода). Это может сделать ваш код более читаемым, хотя и не в той степени, в которой могут быть названы аргументы.
Есть ли C# 2.5? Было ли это 3,5? –
@ C.Ross - вы имеете в виду C# 3.0? –
.NET 3.5, C# 3.0 ..., его обычно называют «C# 3.5» –