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

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

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

                    ConsoleColor.Blue);

Даже если оставить в стороне указанное ограничение, то все равно может возникать вопрос: при каких условиях вообще требуется такая языковая конструкция? В конце концов, для чего нужно менять позиции аргументов метода?

Как выясняется, при наличии метода, в котором определены необязательные аргументы, данное средство может оказаться по-настоящему полезным. Предположим, что метод

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

static void DisplayFancyMessage(ConsoleColor textColor = ConsoleColor.Blue,

  ConsoleColor backgroundColor = ConsoleColor.White,

  string message = "Test Message")

{

   ...

}

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

"Hello!"
появлялось в виде текста синего цвета на белом фоне, то в вызывающем коде можно просто записать так:

DisplayFancyMessage(message: "Hello!");

Если же необходимо, чтобы строка

"Test Message"
выводилась синим цветом на зеленом фоне, тогда должен применяться такой вызов:

DisplayFancyMessage(backgroundColor: ConsoleColor.Green);

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

Понятие перегрузки методов

Подобно другим современным языкам объектно-ориентированного программирования в C# разрешена перегрузка методов. Выражаясь просто, когда определяется набор идентично именованных методов, которые отличаются друг от друга количеством (или типами) параметров, то говорят, что такой метод был перегружен.

Чтобы оценить удобство перегрузки методов, давайте представим себя на месте разработчика, использующего Visual Basic 6.0 (VB6). Предположим, что на языке VB6 создается набор методов, возвращающих сумму значений разнообразных типов (

Integer
,
Double
и т.д.). С учетом того, что VB6 не поддерживает перегрузку методов, придется определить уникальный набор методов, каждый из которых будет делать по существу одно и то же (возвращать сумму значений аргументов):

<b>' Примеры кода VB6.</b>

Public Function AddInts(ByVal x As Integer, ByVal y As Integer) As Integer

  AddInts = x + y

End Function

Public Function AddDoubles(ByVal x As Double, ByVal y As Double) As Double

  AddDoubles = x + y

End Function

Public Function AddLongs(ByVal x As Long, ByVal y As Long) As Long

  AddLongs = x + y

End Function

Такой код не только становится трудным в сопровождении, но и заставляет помнить имена всех методов. Применяя перегрузку, вызывающему коду можно предоставить возможность обращения к единственному методу по имени

Add()
. Ключевой аспект в том, чтобы обеспечить для каждой версии метода отличающийся набор аргументов (различий только в возвращаемом типе не достаточно).

На заметку! Как будет объясняться в главе 10, существует возможность построения обобщенных методов, которые переносят концепцию перегрузки на новый уровень. Используя обобщения, можно определять заполнители типов для реализации метода, которая указывается во время его вызова.

Чтобы попрактиковаться с перегруженными методами, создайте новый проект консольного приложения по имени

FunWithMethodOverloading
. Добавьте новый класс по имени
AddOperations.cs
и приведите его код к следующему виду:

namespace FunWithMethodOverloading {

  // Код С#.

  // Overloaded Add() method.

   public static class AddOperations

  {

    // Перегруженный метод Add().

    public static int Add(int x, int y)

    {

      return x + y;

    }

    // Перегруженный метод Add().

    public static double Add(double x, double y)

    {

      return x + y;

    }

    // Перегруженный метод Add().

    public static long Add(long x, long y)

    {

      return x + y;

    }

  }

}

Замените код в

Program.cs
показанным ниже кодом:

using System;

using FunWithMethodOverloading;

using static FunWithMethodOverloading.AddOperations;

Console.WriteLine(&quot;***** Fun with Method Overloading *****\n&quot;);

// Вызов версии int метода Add()

Console.WriteLine(Add(10, 10));

// Вызов версии long метода Add() с использованием нового

// разделителя групп цифр

Console.WriteLine(Add(900_000_000_000, 900_000_000_000));

// Вызов версии double метода Add()

Console.WriteLine(Add(4.3, 4.4));

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело 3
    • Спецслужбы 3
  • Деловая литература 153
    • Банковское дело 2
    • Деловая литература 2
    • Корпоративная культура 9
    • Личные финансы 16
    • Малый бизнес 2
    • Маркетинг, PR, реклама 35
    • О бизнесе популярно 83
    • Отраслевые издания 1
    • Управление, подбор персонала 12
    • Экономика 20
  • Детективы и триллеры 2295
    • Боевики 263
    • Дамский детективный роман 16
    • Детективы 424
    • Иронические детективы 155
    • Исторические детективы 373
    • Классические детективы 177
    • Криминальные детективы 135
    • Крутой детектив 99
    • Маньяки 14
    • Медицинский триллер 2
    • Политические детективы 40
    • Полицейские детективы 201
    • Прочие Детективы 711
    • Техно триллер 3
    • Триллеры 980
    • Шпионские детективы 83
  • Детские 361
    • Детская образовательная литература 13
    • Детская проза 133
    • Детские остросюжетные 49
    • Детские приключения 172
    • Детские стихи 10
    • Детский фольклор 1
    • Книга-игра 1
    • Прочая детская литература 65
  • Детские книги 419
    • Детская фантастика 171
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 174
  • Документальная литература 715
    • Биографии и мемуары 456
    • Военная документалистика 7
    • Искусство и Дизайн 13
    • Критика 9
    • Научпоп 9
    • Прочая документальная литература 67
    • Публицистика 239
  • Дом и Семья 180
    • Домашние животные 13
    • Здоровье и красота 30
    • Кулинария 27
    • Прочее домоводство 8
    • Развлечения 3
    • Сад и Огород 7
    • Сделай сам 2
    • Спорт 5
    • Хобби и ремесла 7
    • Эротика и секс 90
  • Драматургия 93
    • Драма 90
    • Киносценарии 3
    • Мистерия 1
    • Трагедия 1
  • Жанр не определен 7
    • Разное 7
  • Компьютеры и Интернет 14
    • Базы данных 3
    • Интернет 3
    • Программирование 1
    • Программное обеспечение 1
    • Прочая компьютерная литература 9
  • Любовные романы 24430
    • Исторические любовные романы 854
    • Короткие любовные романы 2322
    • Любовно-фантастические романы 10423
    • Остросюжетные любовные романы 802
    • Порно 78
    • Прочие любовные романы 52
    • Слеш 411
    • Современные любовные романы 10076
    • Фемслеш 42
    • Эротика 5835
  • Научно-образовательная 334
    • Альтернативная медицина 5
    • Астрономия и Космос 7
    • Биология 29
    • Биофизика 2
    • Биохимия 2
    • Ботаника 3
    • Военная история 4
    • Геология и география 2
    • Государство и право 1
    • Детская психология 13
    • Зоология 3
    • Иностранные языки 2
    • Культурология 40
    • Литературоведение 18
    • Медицина 33
    • Обществознание 6
    • Педагогика 18
    • Политика 20
    • Прочая научная литература 55
    • Психотерапия и консультирование 42
    • Религиоведение 7
    • Секс и семейная психология 24
    • Технические науки 4
    • Физика 8
    • Философия 34
    • Химия 3
    • Экология 3
    • Юриспруденция 7
    • Языкознание 16
  • Образование 495
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 281
    • Карьера 4
    • Психология 217
  • Поэзия и драматургия 36
    • Басни 2
    • Драматургия 9
    • Лирика 1
    • Поэзия 26
  • Приключения 673
    • Вестерны 14
    • Исторические приключения 360
    • Морские приключения 66
    • Природа и животные 25
    • Прочие приключения 197
    • Путешествия и география 49
  • Проза 2047
    • Антисоветская литература 5
    • Афоризмы 1
    • Военная проза 97
    • Историческая проза 282
    • Классическая проза 121
    • Контркультура 12
    • Магический реализм 78
    • Новелла 13
    • Повесть 24
    • Проза прочее 19
    • Рассказ 69
    • Роман 100
    • Русская классическая проза 71
    • Семейный роман/Семейная сага 3
    • Сентиментальная проза 10
    • Советская классическая проза 43
    • Современная проза 1575
    • Эпистолярная проза 2
    • Эпопея 4
    • Эссе, очерк, этюд, набросок 2
  • Прочее 1368
    • Газеты и журналы 5
    • Изобразительное искусство, фотография 8
    • Кино 10
    • Музыка 9
    • Подростковая литература 6
    • Театр 5
    • Фанфик 1330
  • Религия и духовность 301
    • Астрология 1
    • Буддизм 4
    • Православие 1
    • Прочая религиозная литература 3
    • Религия 22
    • Самосовершенствование 115
    • Хиромантия 1
    • Эзотерика 174
    • Язычество 1
  • Справочная литература 40
    • Прочая справочная литература 3
    • Путеводители 8
    • Руководства 12
    • Справочники 15
    • Энциклопедии 9
  • Старинная литература 115
    • Античная литература 1
    • Древневосточная литература 5
    • Мифы. Легенды. Эпос 30
    • Прочая старинная литература 80
  • Техника 1
    • Автомобили и ПДД 1
  • Фантастика и фентези 25775
    • Альтернативная история 3700
    • Боевая фантастика 4859
    • Героическая фантастика 1361
    • Городское фэнтези 1865
    • Готический роман 12
    • Детективная фантастика 674
    • Ироническая фантастика 99
    • Ироническое фэнтези 80
    • Историческое фэнтези 450
    • Киберпанк 278
    • Космическая фантастика 1622
    • Космоопера 42
    • ЛитРПГ 1248
    • Любовная фантастика 186
    • Любовное фэнтези 115
    • Мистика 462
    • Научная фантастика 810
    • Попаданцы 8543
    • Постапокалипсис 796
    • Сказочная фантастика 25
    • Социально-философская фантастика 452
    • Стимпанк 135
    • Технофэнтези 106
    • Ужасы 103
    • Ужасы и мистика 712
    • Фантастика 254
    • Фантастика: прочее 212
    • Фэнтези 11023
    • Эпическая фантастика 217
    • Юмористическая фантастика 1018
    • Юмористическое фэнтези 1414
  • Фольклор 7
    • Загадки 1
    • Народные сказки 5
    • Фольклор: прочее 2
  • Юмор 176
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 62
    • Сатира 3
    • Юмористическая проза 110
    • Юмористические стихи 4
Izibook.club

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

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