В Solution Explorer, дясно кликване върху References за проект ShkolaClient и изберете Add Reference. Появява се диалоговия прозорец Add Reference. Клик върху
страница Projects и ще видите вашия проект Shkola. Той е маркиран, но
бутон OK е
забранен, както виждате на Фигура 66. Кликнете бутон Select за да преместите Shkola в кутия Selected Components, и след това бутон OK.

Фигура 66 Диалоговия прозорец Add Reference.
Сега във формата към ShkolaClient,
добавете бутон. Въведете следния код за събитийна процедура Button1_Click:
Protected Sub
button1_Click(ByVal sender As Object, _
ByVal e As
System.EventArgs) Handles button1.Click
Dim Uchenik As New Shkola.Uchenik()
Uchenik.FirstName = "Boyan"
msgbox(Uchenik.FirstName)
End Sub
Във VB6, можеше накратко така:
Dim Uchenik As New Uchenik()
Тук обаче този ред ще даде грешка, защото пълната квалификация е
задължителна. Думата Shkola в този случай не е име на асембли; това е пространство
от имена (namespace). За да разрешите проблема, можете да
импортирате namespace съдържащо класа Uchenik. За тази цел отидете в началото на кода на модула и
прибавете оператор Imports:
Imports Shkola
Във VB6 e така:
Dim
Uchenik as Shkola.cUchenik
Set Uchenik = New Shkola.cUchenik
Във VB.NET, следните два метода са еквивалентни:
Dim KlasDascaliList As New
Collection()
Public ReadOnly Property KlasDascali(ByVal
iIndex As Integer) As KlasDascal
Get
Return CType(KlasDascaliList(iIndex),
KlasDascal)
End Get
End Property
Вие подавате стойност на индекс и
получавате обратно член на колекцията. Забележете, че KlasDascaliList е дефиниран като тип Collection, Option Strict
предпазва от автоматична конверсия от тип Collection
в тип KlasDascal. Затова трябва да
използвате функция CType и да
подадете и двете, обекта, който искате да конвертирате и типа на класа (или обекта) в
който би трябвало да се конвертира.
- Свойства по подразбиране (Default Properties)
Свойства по подразбиране без параметри (without parameters) няма. Но ако свойството (property) има един
или повече параметри, то може да е по подразбиране (default).
Свойство KlasDascali в Uchenik би могло да е default property. За да го направим по
подразбиране прибавяме в началото думата Default:
Default Public ReadOnly
Property _
KlasDascali(ByVal iIndex As
Integer) As KlasDascal
Във вашата клиентска програма, можете да извикате свойството по
подразбиране за обект Uchenik. Последните
два реда код са еквивалентни:
Imports Shkola
...
Dim Uchenik As New Uchenik()
Dim Phys As New KlasDascal()
Phys = Uchenik.KlasDascali(1)
Phys = Uchenik(1) `еквивалентно на горния
ред
- Конструктори (Constructors) във вашите класове
Класът Uchenik, който
построихте няма конструктор; с други
думи не беше на разположение Sub New, когато създадохте клас библиотеката.
Constructors могат да бъдат много полезни, защото
позволяват да инстанцирате обект с готови стойности в себе си. Примерно, ако
искате Uchenik да позволява да подавате UchenikID, когато искате да инстанцирате обект. Това означава, че искате да напишете
код, за да създадете обект и в
същото време да четете база данни и да попълвате свойствата за ученик. Вашата нова
дефиниция за Sub New ще е:
Public Sub New(Optional ByVal iUchenikID As Integer = 0)
А следните редове код, ще ви позволят да инстанцирате обект с вече
установени стойности:
Dim Uchenik As New Uchenik(1)
Dim Uchenik As Uchenik =
New Uchenik(1) `еквивалентно на горния ред
- Класове без конструктори
Не е задължително вашите класове да имат конструктори. Ако
използвате блок Class...End Class за създаване на нов клас, няма да е
обезпечен класа със Sub New. Дали
има конструктор или изпълнява System . ComponentModel .Component, класът
си има методи и свойства и може да бъде създаден като всеки друг клас. Класът KlasDascali може да изглежда така:
Public Class KlasDascal
Dim miPhysID As Integer
Public Property KlasDascalID()
As Integer
Get
Return miPhysID
End Get
Set
miPhysID = Value
End Set
End Property
Public ReadOnly Property Vuzrast()
As Single
Get
`get Date of Birth (DOB)- получаване на дата на
раждане
`изчисляване на Vuzrast от DOB
`връщане на Vuzrast
End Get
End Property
End Class