Перегрузка метода 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) {
...
}
Здесь у нас есть два метода в классе с одинаковым именем — display() . Возможно иметь более одного метода с одним и тем же именем, потому что количество параметров в методах разное. Например,
using System;
namespace MethodOverload {
class Program {
// method with one parameter
void display(int a) {
Console.WriteLine("Arguments: " + a);
}
// method with two parameters
void display(int a, int b) {
Console.WriteLine("Arguments: " + a + " and " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.display(100);
p1.display(100, 200);
Console.ReadLine();
}
}
}
Вывод
Arguments: 100 Arguments: 100 and 200
В приведенном выше примере мы перегрузили функцию display(). метод:
- один метод имеет один параметр
- другой имеет два параметра
В зависимости от номера аргумента, переданного при вызове метода, вызывается соответствующий метод.
p1.display(100)
- вызывает метод с одним параметромp1.display(100, 200)
- вызывает метод с двумя параметрами
2. Путем изменения типов данных параметров
void display(int a) {
...
}
...
void display(string b) {
...
}
Здесь у нас есть два метода — display() с тем же количеством параметров. Возможно иметь более одного display() метод с одинаковым количеством параметров, потому что тип данных параметров в методах разный. Например,
using System;
namespace MethodOverload {
class Program {
// method with int parameter
void display(int a) {
Console.WriteLine("int type: " + a);
}
// method with string parameter
void display(string b) {
Console.WriteLine("string type: " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.display(100);
p1.display("Programiz");
Console.ReadLine();
}
}
}
Вывод
int type: 100 string type: Programiz
В приведенной выше программе мы перегрузили функцию display(). метод с различными типами параметров.
В зависимости от типа аргументов, переданных во время вызова метода, вызывается соответствующий метод.
p1.display(100)
- вызывает метод сint
тип параметраp1.display("Programiz")
- вызывает метод сstring
тип параметра
3. Изменив порядок параметров
void display(int a, string b) {
...
}
...
void display(string b, int a) {
...
}
Здесь у нас есть два метода — display() . Возможно иметь более одного display() метод с тем же номером и типом параметра, потому что порядок типов данных параметров в методах разный. Например,
using System;
namespace MethodOverload {
class Program {
// method with int and string parameters
void display(int a, string b) {
Console.WriteLine("int: " + a);
Console.WriteLine("string: " + b);
}
// method with string andint parameter
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
В приведенной выше программе мы перегрузили функцию display(). метод с разным порядком параметров.
В зависимости от порядка аргументов, переданных во время вызова метода, вызывается соответствующий метод.
p1.display(100, "Programming")
- вызывает метод сint
иstring
параметр соответственноp1.display("Programiz", 400)
- вызывает метод сstring
иint
параметр соответственно
Язык C