Kniga-Online.club
» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

                    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

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  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));

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


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

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*