Преглед парцијалних класа у Висуал Басиц .НЕТ

Дјеломичне класе су карактеристика ВБ.НЕТ-а који се користи скоро свуда, али о њему се не пише много. То би могло бити зато што за сада нема много очигледних „програмер“ апликација. Примарна употреба је на начин на који се АСП.НЕТ и ВБ.НЕТ решења креирају у Висуал Студио-у где је то једна од оних функција која је обично „скривена“.

Дјеломична класа је једноставно дефиниција класе која је подијељена на више физичких датотека. Дјеломичне класе не чине разлику за компајлер јер су све датотеке које чине класу једноставно спојене у један ентитет за преводилац. Пошто су часови само спојени и компилирани, не можете мешати језике. То јест, не можете имати једну делимичну класу у Ц # и другу у ВБ. Не можете ни распоређивати склопове са делимичним класама. Сви морају бити у истој скупштини.

Ово Висуал Студио много користи, посебно на веб страницама где је кључни концепт у датотекама „код иза“. Видећемо како то функционише у Висуал Студио-у, али разумевање шта се променило у Висуал Студио 2005 када је представљен је добро почетно место.

instagram viewer

У Висуал Студио 2003, „скривени“ код за Виндовс апликацију налазио се у одељку који се назива „Регион“ са ознаком „Код генерисаног од стране дизајнера форме Виндовс“. Али и даље је био све у истој датотеци и било је лако видети и променити код у Региону. Све кода доступан је вашој апликацији у .НЕТ-у. Али будући да је неки од њих код који би требало никад се не мијешајте, то је чувано у тој скривеној Регији. (Регије се и даље могу користити за властити код, али Висуал Студио их више не користи.)

У Висуал Студио 2005 (Фрамеворк 2.0) Мицрософт је урадио приближно исту ствар, али су тај код сакрили на другом месту: делимична класа у засебној датотеци. То можете видети на дну слике испод:


Кликните овде да прикажете илустрацију
Кликните на дугме Назад у прегледачу да бисте се вратили

Једна од разлика у синтакси између Висуал Басиц и Ц # тренутно је то што Ц # то захтева све парцијалне класе квалификовати се по кључној речи Делимично али ВБ не. Ваш главни образац на ВБ.НЕТ-у нема никакве посебне квалификације. Али задана изјава класе за празну Виндовс апликацију изгледа овако користећи Ц #:

јавна парцијална класа Форм1: Форм

Мицрософтов избор дизајна на овакве ствари је занимљив. Кад је Паул Вицк, Мицрософтов ВБ дизајнер, написао о овом избору дизајна на свом блогу Паноптицон Централ, расправа о томе у коментарима трајала је на страницама и на страницама.

Погледајмо како све ово функционише са стварним кодом на следећој страници.

На претходној страници објашњен је концепт делимичне наставе. На овој страници претварамо једну класу у две делимичне класе.

Ево примера класе са једном методом и једним својством у ВБ.НЕТ пројекту

 Јавна класа ЦомбинедЦласс. Приватна м_Проперти1 као стринг. Јавна под-нова (БиВал вредност као низ) м_Проперти1 = Вредност. Енд Суб. Публиц Суб Метход1 () МессагеБок. Прикажи (м_Проперти1) Крај Суб. Својство Проперти1 () као стринг. Добити. Врати м_Проперти1. Енд Гет. Подесите (БиВал вредност као стринг) м_Проперти1 = вредност. Енд Сет Енд Проперти. Енд Цласс 

Ова класа се може назвати (на пример, у коду догађаја догађаја Цлицк за предмет Буттон) са кодом:

Дим ЦлассИнстанце као ново _. ЦомбинедЦласс ("О основним визуелним делимичним класама") ЦлассИнстанце. Метход1 ()

Можемо раздвојити својства и методе класе у различите физичке датотеке додавањем две нове датотеке класе пројекту. Наведите прву физичку датотеку Партиал.метходс.вб и именовати други Партиал.пропертиес.вб. Имена физичких датотека морају бити различита, али називи дјеломичних класа бит ће исти, тако да их Висуал Басиц може спојити кад се код састави.

То није потреба за синтаксу, али већина програмера следи пример у Висуал студију коришћења „точкастих“ имена за ове класе. На пример, Висуал Студио користи подразумевано име Форм1.Десигнер.вб за делимичну класу за Виндовс образац. Не заборавите да додате кључну реч Делимична за сваку класу и промените назив интерне класе (не име датотеке) у исто име. Користио сам назив интерне класе: ПартиалЦласс.

Илустрација испод приказује сав код за пример и код на делу.


Кликните овде да прикажете илустрацију
Кликните на дугме Назад у прегледачу да бисте се вратили

Висуал Студио "скрива" делимичне класе као што су Форм1.Десигнер.вб. На следећој страници сазнаћемо како то урадити помоћу делимичних класа које смо управо створили.

Претходне странице објашњавају појам делимичних часова и показују како их кодирати. Али, Мицрософт користи још један трик са делимичним класама које је створио Висуал Студио. Један од разлога њиховог коришћења је одвајање логике апликације од УИ (корисничког интерфејса) кода. У великом пројекту, ове две врсте кода можда би чак створили различити тимови. Ако се налазе у различитим датотекама, оне се могу креирати и ажурирати са много више флексибилности. Али, Мицрософт иде још један корак и сакрива делимични код у Солутион Екплорер-у. Претпоставимо да смо у овом пројекту желели да сакријемо парцијалне класе метода и својстава? Постоји начин, али није очигледно и Мицрософт вам не говори како.

Један од разлога што не видите употребу делимичних класа које је препоручио Мицрософт је тај што то још увек није баш добро подржано у Висуал Студио-у. Да бисте сакрили класе Партиал.метходс.вб и Партиал.пропертиес.вб које смо управо створили, на пример, захтева промену у вбпрој датотека. Ово је КСМЛ датотека која није ни приказан у Солутион Екплорер-у. Можете га пронаћи у програму Виндовс Екплорер заједно са другим датотекама. Вбпрој датотека приказана је на слици испод.


Кликните овде да прикажете илустрацију
Кликните на дугме Назад у прегледачу да бисте се вратили

Начин на који ћемо то учинити је да додамо „роот“ класу која је потпуно празна (преостали су само класа класе и изјава класе Енд) и учинимо да обе наше делимичне класе зависе од ње. Зато додајте још једну класу по имену ПартиалЦлассРоот.вб и поново промените интерно име у ПартиалЦласс да би се подударали са прва два. Овај пут јесам не користио је кључну реч Делимично само да би се подударао са начином на који то ради Висуал Студио.

Ево када ће вам мало знања о КСМЛ-у бити врло корисно. Пошто ће ову датотеку морати да се ажурира ручно, морате да добијете синтаксу КСМЛ исправно. Датотеку можете уређивати у било којем АСЦИИ уређивачу текста - Нотепад функционише сасвим у реду - или у КСМЛ уређивачу. Испада да имате одличног у Висуал студију и то је оно што је приказано на слици испод. Али не можете уређивати вбпрој датотеку истовремено кад уређујете пројекат у којем се налази. Зато затворите пројекат и отворите само вбпрој датотеку. Требали бисте видјети датотеку приказану у прозору за уређивање као што је приказано на слици испод.

(Обратите пажњу на Саставити елементе за сваку класу. Зависи од поделементи се морају додати тачно онако како је приказано на слици испод. Ова илустрација је настала у ВБ-у 2005, али је тестирана и у ВБ-у 2008.)


Кликните овде да прикажете илустрацију
Кликните на дугме Назад у прегледачу да бисте се вратили

За многе од нас је вероватно довољно знати да постоје делимичне наставе, тако да знамо шта су када покушавамо да пронађемо бубе у будућности. За развој великих и сложених система, они би могли бити мало чудо јер могу помоћи у организовању кода на начине који су раније били немогући. (Такође можете да имате делимичне структуре и делимичне интерфејсе!) Али неки људи су закључили да их је Мицрософт измислио само из унутрашњих разлога - да би побољшао њихово генерисање кода. Аутор Пол Киммел чак је отишао толико далеко да је сугерисао да је Мицрософт уствари створио парцијалне класе како би умањио њихове трошкове тако што је олакшао оутсоурцинг развојни посао широм света.

Можда. То би могли да ураде.

instagram story viewer