КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Перегрузка методов
Общие понятия Метод – это элемент класса, который содержит программный код. Метод имеет следующую структуру:
[атрибуты] [спецификторы] тип имя ([параметры]) { Тело метода; }
Атрибуты – это особые указания компилятору на свойства метода. Атрибуты используются редко. Спецификаторы – это ключевые слова, предназначенные для разных целей, например: · определяющие доступность метода для других классов: · private – метод будет доступен только внутри этого класса · protected – метод будет доступен также дочерним классам · public – метод будет доступен любому другому классу, который может получить доступ к данному классу · указывающие доступность метода без создания класса · задающие тип Тип определяет результат, который возвращает метод: это может быть любой тип, доступный в C#, а также ключевое слово void, если результат не требуется. Имя метода – это идентификатор, который будет использоваться для вызова метода. К идентификатору применяются те же требования, что и к именам переменных: он может состоять из букв, цифр и знака подчёркивания, но не может начинаться с цифры. Параметры – это список переменных, которые можно передавать в метод при вызове. Каждый параметр состоит из типа и названия переменной. Параметры разделяются запятой. Тело метода – это обычный программный код, за исключением того, что он не может содержать определения других методов, классов, пространств имён и т. д. Если метод должен возвращать какой-то результат, то обязательно в конце должно присутствовать ключевое слово return с возвращаемым значением. Если возвращение результатов не нужно, то использование ключевого слова return не обязательно, хотя и допускается. Пример метода, вычисляющего выражение:
public double Calc(double a, double b, double c) { if (a > b) return Math.Sin(a) * Math.Cos(b); else { double k = Math.Tan(a * b); return k * Math.Exp(c / k); } }
Язык C# позволяет создавать несколько методов с одинаковыми именами, но разными параметрами. Компилятор автоматически подберёт наиболее подходящий метод при построении программы. Например, можно написать два отдельных метода возведения числа в степень: для целых чисел будет применяться один алгоритм, а для вещественных – другой:
/// <summary> /// Вычисление X в степени Y для целых чисел /// </summary> private int Pow(int X, int Y) { int b = 1; while (Y!= 0) if (Y % 2 == 0) { Y /= 2; X *= X; } else { Y--; b *= X; } return b; }
/// <summary> /// Вычисление X в степени Y для вещественных чисел /// </summary> private double Pow(double X, double Y) { if (X!= 0) return Math.Exp(Y * Math.Log(Math.Abs(X))); else if (Y == 0) return 1; else return 0; }
Вызывается такой код одинаково, разница лишь в параметрах – в первом случае компилятор вызовет метод Pow с целочисленными параметрами, а во втором – с вещественными:
Pow(3, 17); Pow(3.0, 17.0);
Дата добавления: 2014-11-07; Просмотров: 519; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |