Основы VB.NET Урок 42. Перегрузка функций и процедур
Для начала парочка слов, что такое перегрузка функций. В вашей программе вам может понадобится несколько функций, которые делают аналогичную работу с разными аргументами. Под словами "разные агрументы" понимается или аргументы разных типов, или разное количество аргументов (или и то, и другое, разуеется). Так вот, перегрузка - это и есть определение нескольких функций с одним именем, но с разными аргументами. В ранних версиях VB это было невозможно - приходилось определять функции с разными именами, что было не слишком удобно.
Типичный пример перегружаемых функций - это функция для вывода на экран даннных. Логично назвать ее Write или Show или как-нибудь в таком духе. Понятно, что данные у нас могут быть разных типов, так что нам нади сделать несколько перегруженных функций - одну, например, с типом int, другую с типом string и т. д. Еще типичный пример - это функция, которая ищет сумму передаваемых в нее параметров. Количество параметров может быть разное. И в этом случае нам опять поможет перегрузка - одну функцию мы сделаем с одним количеством аргументов, другую - с другим. Хотя, по правде говоря, с такой функцией для суммирования существует и более элегантное решение.
Вот пример на перегрузку:
Class MySum
'Функция с 2-я целыми параметрами.
Overloads Shared Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
'Функция с 3-я целыми параметрами.
Overloads Shared Function Sum(ByVal a As Integer, _
ByVal b As Integer, ByVal c As Integer) As Integer>
Return a + b + c
End Function
'Функция с 2-я вещественными параметрами.
Overloads Shared Function Sum(ByVal a As Double, ByVal b As Double) As Double
Return a + b
End Function
End Class
'Класс для тестирования.
Class Test
Shared Sub Main()
Dim z As Integer
z = MySum.Sum(2, 5) 'Выведется 7
Console.WriteLine(z)
z = MySum.Sum(2, 5, -3)
Console.WriteLine(z) 'Выведется 4
Dim y As Double
y = MySum.Sum(2.1, 5.1)
Console.WriteLine(y) 'Выведется 7.2
End Sub
End Class
Обратите внимание, что при перегрузке мы используем ключевое слово Overloads (хотя в данном случае его использование не является обязательным).
Также обратите внимание, что пeрегружаемые функции не могут отличаться только типом возвращаемого значения. Они должны обязательно отличаться аргументами.
|