Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Освоение перегрузки методов в C#: концепции, примеры и лучшие практики

Перегрузка методов в C#: полное руководство

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

В C# класс может содержать несколько методов с одинаковым именем, но различными списками параметров — это называется перегрузкой методов. Например:

void display() { ... }
void display(int a) { ... }
float display(double a) { ... }
float display(int a, float b) { ... }

Здесь метод display() перегружен. Эти методы имеют одно имя, но принимают разные аргументы.

Примечание: перегрузка определяется исключительно списками параметров; возвращаемые типы могут отличаться.


1. Изменение количества параметров

Метод можно перегрузить, если отличается количество параметров.

void display(int a) { ... }
void display(int a, int b) { ... }

Пример:

using System;
namespace MethodOverload {
    class Program {
        // метод с одним параметром
        void display(int a) {
            Console.WriteLine("Аргументы: " + a);
        }
        // метод с двумя параметрами
        void display(int a, int b) {
            Console.WriteLine("Аргументы: " + a + " и " + b);
        }
        static void Main(string[] args) {
            Program p1 = new Program();
            p1.display(100);
            p1.display(100, 200);
            Console.ReadLine();
        }
    }
}

Результат

Аргументы: 100
Аргументы: 100 и 200

В зависимости от количества переданных аргументов вызывается соответствующая перегрузка.


2. Изменение типов данных параметров

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

void display(int a) { ... }
void display(string b) { ... }

Пример:

using System;
namespace MethodOverload {
    class Program {
        // метод с параметром int
        void display(int a) {
            Console.WriteLine("Тип int: " + a);
        }
        // метод с параметром string
        void display(string b) {
            Console.WriteLine("Тип string: " + b);
        }
        static void Main(string[] args) {
            Program p1 = new Program();
            p1.display(100);
            p1.display("Programiz");
            Console.ReadLine();
        }
    }
}

Результат

Тип int: 100
Тип string: Programiz

3. Изменение порядка параметров

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

void display(int a, string b) { ... }
void display(string b, int a) { ... }

Пример:

using System;
namespace MethodOverload {
    class Program {
        // метод с параметрами int и string
        void display(int a, string b) {
            Console.WriteLine("int: " + a);
            Console.WriteLine("string: " + b);
        }
        // метод с параметрами string и int
        void display(string b, int a) {
            Console.WriteLine("string: " + b);
            Console.WriteLine("int: " + a);
        }
        static void Main(string[] args) {
            Program p1 = new Program();
            p1.display(100, "Programming");
            p1.display("Programiz", 400);
            Console.ReadLine();
        }
    }
}

Результат

int: 100
string: Programming
string: Programiz
int: 400

Язык C

  1. Абстрактные классы и методы в C#: практическое руководство
  2. Частичные классы и методы в C#: понимание и применение
  3. Sealed-классы и sealed-методы в C#: когда использовать, примеры и повышение безопасности кода
  4. Освоение перегрузки конструкторов в C#
  5. Перегрузка операторов в Python: практическое руководство
  6. Понимание задач (Tasks) в Verilog: отличия от функций, синтаксис и применение
  7. Мастерство задач отображения в Verilog: эффективная отладка и логирование
  8. Методы в C#: определение, вызов, рекурсия и параметры
  9. Перегрузка операторов в C#: пользовательские типы и кастомная логика
  10. Анонимные методы в C#: Упрощение работы с делегатами