Izibook.club
Читать онлайн книги!
  • Главная
  • Жанры
  • Авторы
  • ТОП книг
  • ТОП авторов
  • Контакты

Язык программирования C#9 и платформа .NET5

Часть 86 из 642 Информация о книге

EnterLogData("Oh no! I can't find the payroll data", "CFO");

Console.ReadLine();

Из-за того, что в первом вызове

EnterLogData()
не был указан второй аргумент
string
, будет использоваться его стандартное значение —
"Programmer"
. Во втором вызове
EnterLogData()
для второго аргумента передано значение
"CFO"
.

Важно понимать, что значение, присваиваемое необязательному параметру, должно быть известно на этапе компиляции и не может вычисляться во время выполнения (если вы попытаетесь сделать это, то компилятор сообщит об ошибке). В целях иллюстрации модифицируйте метод

EnterLogData()
, добавив к нему дополнительный необязательный параметр:

// Ошибка! Стандартное значение для необязательного

// аргумента должно быть известно на этапе компиляции!

static void EnterLogData(string message,

    string owner = "Programmer", DateTime timeStamp =
DateTime.Now)

{

  Console.Beep();

  Console.WriteLine("Error: {0}", message);  // Сведения об ошибке

  Console.WriteLine("Owner of Error: {0}", owner); // Владелец ошибки

  Console.WriteLine("Time of Error: {0}", timeStamp);

                                             // Время возникновения ошибки

}

Такой код не скомпилируется, поскольку значение свойства

Now
класса
DateTime
вычисляется во время выполнения, а не на этапе компиляции.

На заметку! Во избежание неоднозначности необязательные параметры должны всегда помещаться в конец сигнатуры метода. Если необязательные параметры обнаруживаются перед обязательными, тогда компилятор сообщит об ошибке.

Использование именованных параметров (обновление в версии 7.2)

Еще одним полезным языковым средством C# является поддержка именованных аргументов. Именованные аргументы позволяют вызывать метод с указанием значений параметров в любом желаемом порядке. Таким образом, вместо передачи параметров исключительно по позициям (как делается в большинстве случаев) можно указывать имя каждого аргумента, двоеточие и конкретное значение. Чтобы продемонстрировать использование именованных аргументов, добавьте в класс

Program
следующий метод:

static void DisplayFancyMessage(ConsoleColor textColor,

  ConsoleColor backgroundColor, string message)

{

  //Сохранить старые цвета для их восстановления после вывода сообщения.

  ConsoleColor oldTextColor = Console.ForegroundColor;

  ConsoleColor oldbackgroundColor = Console.BackgroundColor;

  // Установить новые цвета и вывести сообщение.

  Console.ForegroundColor = textColor;

  Console.BackgroundColor = backgroundColor;

  Console.WriteLine(message);

  // Восстановить предыдущие цвета.

  Console.ForegroundColor = oldTextColor;

  Console.BackgroundColor = oldbackgroundColor;

}

Теперь, когда метод

DisplayFancyMessage()
написан, можно было бы ожидать, что при его вызове будут передаваться две переменные типа
ConsoleColor
, за которыми следует переменная типа
string
. Однако с помощью именованных аргументов метод
DisplayFancyMessage()
допустимо вызывать и так, как показано ниже:

Console.WriteLine("***** Fun with Methods *****");

DisplayFancyMessage(message: "Wow! Very Fancy indeed!",

  textColor: ConsoleColor.DarkRed,

  backgroundColor: ConsoleColor.White);

DisplayFancyMessage(backgroundColor: ConsoleColor.Green,

  message: "Testing...",

  textColor: ConsoleColor.DarkBlue);

Console.ReadLine();

В версии C# 7.2 правила применения именованных аргументов слегка изменились. До выхода C# 7.2 при вызове метода позиционные параметры должны были располагаться перед любыми именованными параметрами. В C# 7.2 и последующих версиях именованные и неименованные параметры можно смешивать, если параметры находятся в корректных позициях.

На заметку! Хотя в C# 7.2 и последующих версиях именованные и позиционные аргументы можно смешивать, поступать так — не особо удачная идея. Возможность не значит обязательность!

Ниже приведен пример:

<b>// Все нормально, т.к. позиционные аргументы находятся перед именованными.</b>

DisplayFancyMessage(ConsoleColor.Blue,

                    message: &quot;Testing...&quot;,

                    backgroundColor: ConsoleColor.White);

<b>// Все нормально, т.к. все аргументы располагаются в корректном порядке.</b>

DisplayFancyMessage(textColor: ConsoleColor.White,

                    backgroundColor:ConsoleColor.Blue,

                    &quot;Testing...&quot;);

<b>// ОШИБКА в вызове, поскольку позиционные аргументы следуют после именованных.</b>

DisplayFancyMessage(message: &quot;Testing...&quot;,

                    backgroundColor: ConsoleColor.White,

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело 3
    • Спецслужбы 3
  • Деловая литература 189
    • Банковское дело 2
    • Деловая литература 2
    • Корпоративная культура 12
    • Личные финансы 20
    • Малый бизнес 2
    • Маркетинг, PR, реклама 43
    • О бизнесе популярно 104
    • Отраслевые издания 2
    • Управление, подбор персонала 16
    • Ценные бумаги, инвестиции 2
    • Экономика 25
  • Детективы и триллеры 2684
    • Боевики 306
    • Дамский детективный роман 21
    • Детективы 424
    • Иронические детективы 179
    • Исторические детективы 409
    • Классические детективы 214
    • Криминальные детективы 151
    • Крутой детектив 112
    • Маньяки 15
    • Медицинский триллер 2
    • Политические детективы 43
    • Полицейские детективы 227
    • Прочие Детективы 797
    • Техно триллер 3
    • Триллеры 1158
    • Шпионские детективы 98
  • Детские 476
    • Детская образовательная литература 13
    • Детская проза 161
    • Детские остросюжетные 52
    • Детские приключения 250
    • Детские стихи 20
    • Детский фольклор 1
    • Книга-игра 1
    • Прочая детская литература 75
  • Детские книги 516
    • Детская фантастика 192
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 254
  • Документальная литература 792
    • Биографии и мемуары 518
    • Военная документалистика 7
    • Искусство и Дизайн 13
    • Критика 11
    • Научпоп 9
    • Прочая документальная литература 71
    • Публицистика 256
  • Дом и Семья 212
    • Домашние животные 14
    • Здоровье и красота 34
    • Кулинария 33
    • Прочее домоводство 8
    • Развлечения 3
    • Сад и Огород 8
    • Сделай сам 2
    • Спорт 9
    • Хобби и ремесла 7
    • Эротика и секс 108
  • Драматургия 108
    • Драма 105
    • Киносценарии 3
    • Мистерия 1
    • Трагедия 1
  • Жанр не определен 8
    • Разное 8
  • Компьютеры и Интернет 15
    • Базы данных 3
    • Интернет 3
    • Программирование 1
    • Программное обеспечение 1
    • Прочая компьютерная литература 10
  • Любовные романы 26290
    • Исторические любовные романы 940
    • Короткие любовные романы 2624
    • Любовно-фантастические романы 10962
    • Остросюжетные любовные романы 954
    • Порно 90
    • Прочие любовные романы 55
    • Слеш 416
    • Современные любовные романы 10860
    • Фемслеш 44
    • Эротика 6450
  • Научно-образовательная 367
    • Альтернативная медицина 5
    • Астрономия и Космос 7
    • Биология 32
    • Биофизика 2
    • Биохимия 2
    • Ботаника 3
    • Военная история 4
    • Геология и география 2
    • Государство и право 1
    • Детская психология 15
    • Зоология 3
    • Иностранные языки 2
    • Культурология 45
    • Литературоведение 20
    • Медицина 35
    • Обществознание 6
    • Педагогика 20
    • Политика 22
    • Прочая научная литература 58
    • Психотерапия и консультирование 49
    • Религиоведение 7
    • Секс и семейная психология 30
    • Технические науки 4
    • Физика 9
    • Философия 34
    • Химия 3
    • Экология 3
    • Юриспруденция 7
    • Языкознание 18
  • Образование 520
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 295
    • Карьера 4
    • Психология 229
  • Поэзия и драматургия 40
    • Басни 2
    • Драматургия 9
    • Лирика 2
    • Поэзия 29
  • Приключения 751
    • Вестерны 14
    • Исторические приключения 411
    • Морские приключения 77
    • Природа и животные 31
    • Прочие приключения 211
    • Путешествия и география 52
  • Проза 2352
    • Антисоветская литература 5
    • Афоризмы 1
    • Военная проза 110
    • Историческая проза 313
    • Классическая проза 131
    • Контркультура 13
    • Магический реализм 90
    • Новелла 14
    • Повесть 24
    • Проза прочее 21
    • Рассказ 73
    • Роман 103
    • Русская классическая проза 71
    • Семейный роман/Семейная сага 3
    • Сентиментальная проза 10
    • Советская классическая проза 47
    • Современная проза 1809
    • Эпистолярная проза 2
    • Эпопея 4
    • Эссе, очерк, этюд, набросок 3
  • Прочее 1498
    • Газеты и журналы 5
    • Изобразительное искусство, фотография 10
    • Кино 13
    • Музыка 11
    • Подростковая литература 6
    • Театр 5
    • Фанфик 1453
  • Религия и духовность 354
    • Астрология 1
    • Буддизм 4
    • Православие 1
    • Прочая религиозная литература 4
    • Религия 24
    • Самосовершенствование 134
    • Хиромантия 1
    • Эзотерика 206
    • Язычество 1
  • Справочная литература 41
    • Прочая справочная литература 3
    • Путеводители 9
    • Руководства 12
    • Справочники 15
    • Энциклопедии 9
  • Старинная литература 146
    • Античная литература 1
    • Древневосточная литература 5
    • Мифы. Легенды. Эпос 34
    • Прочая старинная литература 107
  • Техника 2
    • Автомобили и ПДД 1
    • Архитектура 1
  • Фантастика и фентези 28253
    • Альтернативная история 4109
    • Боевая фантастика 5316
    • Героическая фантастика 1471
    • Городское фэнтези 2229
    • Готический роман 13
    • Детективная фантастика 742
    • Ироническая фантастика 102
    • Ироническое фэнтези 82
    • Историческое фэнтези 519
    • Киберпанк 311
    • Космическая фантастика 1797
    • Космоопера 56
    • ЛитРПГ 1321
    • Любовная фантастика 186
    • Любовное фэнтези 115
    • Мистика 508
    • Научная фантастика 918
    • Попаданцы 9360
    • Постапокалипсис 900
    • Сказочная фантастика 26
    • Социально-философская фантастика 530
    • Стимпанк 150
    • Технофэнтези 137
    • Ужасы 103
    • Ужасы и мистика 810
    • Фантастика 254
    • Фантастика: прочее 231
    • Фэнтези 11512
    • Эпическая фантастика 234
    • Юмористическая фантастика 1064
    • Юмористическое фэнтези 1648
  • Фольклор 7
    • Загадки 1
    • Народные сказки 5
    • Фольклор: прочее 2
  • Юмор 192
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 66
    • Сатира 3
    • Юмористическая проза 122
    • Юмористические стихи 5
Izibook.club

Бесплатная онлайн библиотека для чтения книг без регистрации с телефона или компьютера. У нас собраны последние новинки, мировые бестселлеры книжного мира.

Контакты
  • pereezdsayta@yandex.ru
Информация
  • Карта сайта
© izibook.club, 2026. | Вход
Этот сайт использует cookie для хранения данных. Продолжая пользоваться сайтом, вы даете свое согласие на работу с этими данными в соответствии с нашей политикой конфиденциальности.
Я согласен