Помогни ни да направим Uroci.net по - богат! Добави урок

Създаване на вашата първа Клас библиотека (Class Library)

bubust   трудност:    видян: 10796



В 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


Страници: «1 2 3 »

Сподели урока:



Регистрирайте се, за да добавите коментар


Калдейта Ком ЕООД - © 2003-. Всички права запазени.
Препоръчваме: IT Новини