Перегрузка конструктора C#
Перегрузка конструктора C#
В этой статье вы узнаете о перегрузке конструктора в C# с помощью примеров.
В C#, аналогично перегрузке методов, мы также можем перегружать конструкторы. Для перегрузки конструктора должно быть два или более конструктора с одинаковыми именами, но разными
- количество параметров
- типы параметров
- порядок параметров
Прежде чем вы узнаете о перегрузке конструктора, обязательно узнайте о конструкторах C#.
<час>Мы можем выполнить перегрузку конструктора следующими способами:
1. Разное количество параметров
Мы можем перегрузить конструктор, если количество параметров в конструкторе отличается.
class Car {
Car() {
...
}
Car(string brand) {
...
}
Car(string brand, int price) {
...
}
}
Здесь у нас есть три конструктора в классе Car. . Возможно иметь более одного конструктора, поскольку количество параметров в конструкторах разное.
Обратите внимание,
Car() { }
- не имеет параметраCar(string brand) { }
- имеет один параметрCar(string brand, int price) { }
- имеет два параметра
Пример:перегрузка конструктора с другим количеством параметров
using System;
namespace ConstructorOverload {
class Car {
// constructor with no parameter
Car() {
Console.WriteLine("Car constructor");
}
// constructor with one parameter
Car(string brand) {
Console.WriteLine("Car constructor with one parameter");
Console.WriteLine("Brand: " + brand);
}
static void Main(string[] args) {
// call with no parameter
Car car = new Car();
Console.WriteLine();
// call with one parameter
Car car2 = new Car("Bugatti");
Console.ReadLine();
}
}
}
Вывод
Car constructor Car constructor with one parameter Brand: Bugatti
В приведенном выше примере мы перегрузили Car конструктор:
- один конструктор имеет один параметр
- другой имеет два параметра
На основе номера аргумента, переданного во время вызова конструктора, вызывается соответствующий конструктор.
Здесь
- Объект автомобиль - вызывает конструктор с одним параметром
- Объект car2 - вызывает конструктор с двумя параметрами
2. Различные типы параметров
class Car {
Car(string brand) {
...
}
Car(int price) {
...
}
}
Здесь у нас есть две Car конструкторы с одинаковым количеством параметров. Мы можем создавать конструкторы с одинаковыми параметрами, потому что тип данных внутри параметров отличается.
Обратите внимание,
Car(string brand) { }
- имеет параметрstring
типCar(int price) { }
- имеет параметрint
тип
Пример:перегрузка конструктора с различными типами параметров
using System;
namespace ConstructorOverload {
class Car {
// constructor with string parameter
Car(string brand) {
Console.WriteLine("Brand: " + brand);
}
// constructor with int parameter
Car(int price) {
Console.WriteLine("Price: " + price);
}
static void Main(string[] args) {
// call constructor with string parameter
Car car = new Car("Lamborghini");
Console.WriteLine();
// call constructor with int parameter
Car car2 =new Car(50000);
Console.ReadLine();
}
}
}
Вывод
Brand: Lamborghini Price: 50000
В приведенной выше программе мы перегрузили конструктор различными типами параметров.
Здесь
- Объект автомобиль - вызывает конструктор с
string
тип параметра - Объект car2 - вызывает конструктор с
int
тип параметра
3. Другой порядок параметров
Car {
Car(string brand, int price) {
...
}
Car(int speed, string color) {
...
}
}
Здесь у нас есть два конструктора с одинаковым количеством параметров. Это возможно, потому что порядок типов данных в параметрах другой.
Обратите внимание,
Car(string brand, int price) { }
-string
тип данных предшествуетint
Car(int speed, string color) { }
-int
тип данных предшествуетstring
Пример:перегрузка конструктора с другим порядком параметров
using System;
namespace ConstructorOverload {
class Car {
// constructor with string and int parameter
Car(string brand, int price) {
Console.WriteLine("Brand: " + brand);
Console.WriteLine("Price: " + price);
}
// constructor with int and string parameter
Car(int speed, string color) {
Console.WriteLine("Speed: " + speed + " km/hr");
Console.WriteLine("Color: " + color);
}
static void Main(string[] args) {
// call constructor with string and int parameter
Car car = new Car("Bugatti", 50000);
Console.WriteLine();
// call constructor with int and string parameter
Car car2 =new Car(60, "Red");
Console.ReadLine();
}
}
}
Вывод
Brand: Bugatti Price: 50000 Speed: 60 km/hr Color: Red
В приведенной выше программе мы перегрузили конструкторы с разным порядком параметров.
Здесь
- Объект автомобиль - вызывает конструктор с
string
иint
параметр соответственно - Объект car2 - вызывает конструктор с
int
иstring
параметр соответственно
Язык C
- С# конструктор
- Вложенный класс С#
- Перегрузка метода C#
- Перегрузка оператора Python
- Конструкторы Java
- Конструктор перечисления Java
- Что такое охлаждающая жидкость для двигателя автомобиля?
- Перегрузка оператора C++ с примерами
- Перегрузка конструктора в Java:что это такое и примеры программ
- Java — Конструкторы