// Продемонстрировать перегрузку методов.

«

using System;

class Overload {

public void OvlDemo() {

Console.WriteLine('Без параметров');

}

// Перегрузка метода OvlDemo с одним целочисленным параметром, public void OvlDemo(int a) {

Console.WriteLine('Один параметр: ' + a);

}

// Перегрузка метода OvlDemo с двумя целочисленными параметрами, public int OvlDemo(int a, int b) {

Console.WriteLine('Два параметра: ' + a + ' ' + b); return a + b;

}

// Перегрузка метода OvlDemo с двумя параметрами типа double, public double OvlDemo(double a, double b) {

Console.WriteLine('Два параметра типа double: ' + a + ' '+ b) ;

return a + b;

}

class OverloadDemo {• static void Main() {

Overload ob = new Overload(); int resl; double resD;

// Вызвать все варианты метода OvlDemo(). ob.OvlDemo();

Console.WriteLine();

ob.OvlDemo(2);

Console.WriteLine ();

resl = ob.OvlDemo(4, 6);

Console.WriteLine('Результат вызова метода ob.OvlDemo(4, 6): ' + Console.WriteLine ();

resl

' +

resD = ob.OvlDemo(1.1, 2.32);

Console.WriteLine('Результат вызова метода ob.OvlDemo(1.1, 2.32): resD);

}

}

Вот к какому результату приводит выполнение приведенного выше кода.

Без параметров Один параметр: 2 Два параметра: '4 6

Результат вызова метода ob.OvlDemo(4, 6): 10 Два параметра типа double: 1.1 2.32

Результат вызова метода ob.OvlDemo(1.1, 2.32): 3.42

Как видите, метод OvlDemo () перегружается четыре раза. Первый его вариант не получает параметров, второй получает один целочисленный параметр, третий — два целочисленных параметра, а четвертый — два параметра типа double. Обратите также внимание на то, что два первых варианта метода OvlDemo () возвращают значение типа void, а по существу, не возвращают никакого значения, а два других — возвращают конкретное значение. И это совершенно допустимо, но, как пояснялось выше, тип возвращаемого значения не играет никакой роли для перегрузки метода. Следовательно, попытка использовать два разных (по типу возвращаемого значения) варианта метода OvlDemo () в приведенном ниже фрагменте кода приведет к ошибке.

// Одно объявление метода OvlDemo(int) вполне допустимо, public void OvlDemo(int a) {

Console.WriteLine('Один параметр: ' + a);

}

/* Ошибка! Два объявления метода OvlDemo(int) не допускаются, хотя они и возвращают разнотипные значения. */ public int OvlDemo(int a) {

Console.WriteLine('Один параметр: ' + a); return a * a;

}

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату