progs.biz  
Начало>VB.NET>Основы>Урок 42
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Заказать на Озоне



Яндекс-цитирования

Основы 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регружаемые функции не могут отличаться только типом возвращаемого значения. Они должны обязательно отличаться аргументами.

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2008 сайт progs.biz
© 2002-2008 Игорь Алексеев