progs.biz  
Начало>VB.NET>Основы>Урок 51
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
Обзор книг
Обзор программ

Джон Коннелл. Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET
Джон Коннелл. Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET
Заказать на Озоне



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

Основы VB.NET
Урок 51. Введение в generic

Generic'и, или обобщенные типы, появились только в .NET версии 2.0. До этого таких конструкций в языке VB.NET не было. Они отчасти напоминают шаблоны языка C++.

Generic'и по сути являются обобщенными типами данных. Т. е. при объявлении такого типа мы используем некоторый формальный (не существующий тип) - его мы можем использовать как тип переменных и методов, как тип параметров и т. п. Когда же мы создаем экземпляр generic'а, то мы указываем уже конкретный тип. При этом формальный тип для данного экземпляра generic'а заменяется на этот конкретный тип.

Вот пример generic-класса:

Public Class Class1(Of T)
    Private a As T
    Function GetValue() As T
        Return a
    End Function
    Sub SetValue(ByVal a As T)
        Me.a = a
    End Sub
End Class

Как вы видите, тут мы используем несуществующий тип T. При этом наш класс должен быть объявлен именно таким образом:

Public Class Class1(Of T)
    ...

Как вы видите, формальный тип T мы используем и как тип параметров, методов и переменных класса.

А вот как этот generic-класс можно использовать:

    Sub Main()
        Dim w As New Class1(Of Integer)
        w.SetValue(22)
        Console.WriteLine(w.GetValue)
    End Sub

Как видно из этого кода, мы вместо формального параметра T используем конкретный тип Integer. Выведет указанный фрагмент, разумеется, 22.

Рассылки нашего сайта на 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 Игорь Алексеев