Ниже приведена общая форма синтаксиса инициализации объектов:
new
где
Инициализаторы объектов обычно не используются в именованных классах, как, например, в представленном выше классеMyClass,хотя это вполне допустимо. Вообще, при обращении с именованными классами используется синтаксис вызова обычного конструктора. И, как упоминалось выше, инициализаторы объектов применяются в основном в анонимных типах, формируемых в LINQ-выражениях.
Необязательные аргументы
В версии C# 4.0 внедрено новое средство, повышающее удобство указания аргументов при вызове метода. Это средство называется
Данное значение будет использоваться по умолчанию в том случае, если для параметра не указан соответствующий аргумент при вызове метода. Следовательно, указывать аргумент для такого параметра не обязательно. Необязательные аргументы позволяют упростить вызов методов, где к некоторым параметрам применяются аргументы, выбираемые по умолчанию. Их можно также использовать в качестве "сокращенной7' формы перегрузки методов.
Применение необязательного аргумента разрешается при создании
static void OptArgMeth(int alpha, int beta=10, int gamma = 20) {
В этой строке кода объявляются два необязательных параметра:betaиgamma,причем параметруbetaпо умолчанию присваивается значение 10, а параметруgamma —значение 20. Эти значения используются по умолчанию, если для данных параметров не указываются аргументы при вызове метода. Следует также иметь в виду, что параметрalphaне является необязательным. Напротив, это обычный параметр, для которого всегда нужно указывать аргумент.
Принимая во внимание приведенное выше объявление методаOptArgMeth ,последний можно вызвать следующими способами.
// Передать все аргументы явным образом.
OptArgMeth(1, 2, 3);
// Сделать аргумент gamma необязательным.
OptArgMeth(1, 2);
// Сделать оба аргумента beta и gamma необязательными.