Помогни ни да направим Uroci.net по - богат! Добави урок
Категории Други уроци Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS и HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic
JavaScript Ajax 3ds Max Maya 3D C++ Sound Forge Gimp SWiSH

Обектните променливи и тяхното свързване

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

Като добавка, много апликации ползват предимствата на обекти, представени от други апликации, като ActiveX Data Objects (ADO), Microsoft Word, Excel, Access, различните скрипт апликации и други. Възловата точка е в това, че за всеки клас, който използваме, се нуждаем от декларация на променлива от този тип клас. Примерно, ако създаваме клас с име CUchitel, след това в порядъка да инстанцираме CUchitel обект, трябва да декларираме променлива:

Dim AUchitel As CUchitel

По подобен начин решаваме да използваме обект запис - ADO Recordset object, трябва да декларираме променлива от тип ADO.Recordset:

Dim rs As ADO.Recordset

Даже и обектните променливи да са декларирани по същия начин като не обектните, има някои забележителни разлики. В частност декларацията:

Dim obj As MyClass

няма да създаде обектна променлива--тя само свързва името на променливата с името на класа. За да конструираме реално обект и да поставим променлива да свързва този обект, ние трябва да извикаме конструктора на класа. Тази функция, дискутирана в детайли в Глава 3, е отговорна за създаване на обект от класа.

Конструкторите се викат с ключова дума New, така:

Dim obj As MyClass = New Myclass( )

или:

Dim obj As MyClass

obj = New MyClass( )

VB .NET следователно обезпечава шорткът (препратка), който не посочва конструктора изрично:

Dim obj As New MyClass( )

(Във VB, използвахме Set, което вече не се поддържа.)


Версии късно свързване и ранно свързване

Декларацията на обектната променлива:

Dim obj As Class1

изрично посочва класа от който се създава обекта (в този случай Class1).

Фигура 53 . Intellisense показва списъка с членове (member)



Точно затова, VB може да получи и разпечата информация за членовете (members) на класа, както виждаме на фиг. 53.

Както знаете, Intellisense също показва сигнатурата на метода, както е показано на фигура 54.



Фигура 54 Intellisense показва сигнатурата на метода



Още по интересно е, че предната декларация на обектната променлива позволява VB да свърже обектния метод с актуалния адрес на функцията по време на компилация -compile time. Това е известно като ранно свързване - early binding.

Алтернативна декларация, която сочи класа е тази, наречена родова (generic) декларация на обектна-променлива, която използва As Object синтаксис:

Dim obj As Object

Защото е вярно, че obj може да съдържа връзка към всеки обект, ние плащаме данък за тази привилегия. VB не може вече да дава информация за класа и членовете му, защото не знае към какъв клас принадлежи обекта - obj!

Като резултат, VB Intellisense не може да помага със синтаксиса на членовете. VB не може да свързва тези свойства и методи на класа по време на компилация--трябва да почакатe до времето на изпълнение (runtime). Това се нарича късно свързване - late binding.

Очевидно ранното свързване е по-добро и трябва да го използваме където е възможно.


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

реклама

© Всички права запазени. 2006-2008. Created by: Site.bg
Препоръчваме: IT Новини | Кино и игри | Диплома.бг | Paparak.bg | Тунинг Портал | uchenik.com | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | AnimeS-bg.com | Фото Форум | Запознанства | Мрежа от приятели | IT Light | Spodeli.net | Фото-Култ | IDG.BG | Teenproblem.net | Блог - Образование | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Казанлък.Com | News24 | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com