Noderīgais vispārīgo saraksts vietnē VB.NET

Generics paplašina VB.NET jaudu un elastību daudzās jomās, taču jūs iegūstat lielāku ieguvumu no veiktspējas un plašākas programmēšanas iespējas vispārīgajā Saraksts objekts [Saraksts (no T)] nekā ar jebkuru citu.

Izmantot Saraksts (no T), jums ir jāsaprot, kā īstenot daudzās metodes, kuras nodrošina .NET Framework. Zemāk ir trīs piemēri, izmantojot Katram, Atrodi visu, un Kārtot, kas parāda, kā sugas Saraksts klases darbi.

Pats pirmais solis ir generic Saraksts. Jūs varat iegūt datus daudzos veidos, bet vienkāršākais ir taisnīgs Pievienot tā. Zemāk redzamais kods parāda, kā klasificēt manu alus un vīna kolekciju!

Sākuma kods

Vispirms jābūt objektam, kas attēlos pudeli no kolekcijas. Windows veidlapu lietojumprogrammā veidlapas klasei vispirms jāatrodas failā, pretējā gadījumā Visual Studio dizainers nedarbosies pareizi, tāpēc ievietojiet to beigās:

Sabiedriskās klases pudele. Publiskais zīmols kā stīga. Publiskais nosaukums kā stīga. Sabiedriskā kategorija kā stīga. Publiskais lielums kā decimāls. Publisks apakšjauns (_. ByVal m_Brand As String, _. ByVal m_Name As String, _. ByVal m_Category As String, _. ByVal m_Size kā decimāls) Zīmols = m_Brand. Vārds = m_Name. Kategorija = m_kategorija. Izmērs = m_izmērs. Beigas apakš. Beigu klase
instagram viewer

Lai izveidotu kolekciju, Pievienot preces. Tas ir tas, kas atrodas Veidlapas slodze notikums:

Dim skapis kā saraksts (no pudeles) = _. "Jauns saraksts (no pudeles) Kabinets. Pievienot (jauna pudele (_. "Pils Creek", _. "Uintah Blanc", _. "Vīns", 750)) Kabinets. Pievienot (jauna pudele (_. "Zion Canyon alus darīšanas uzņēmums", _. "Springdale Amber Ale", _. "Alus", 355)) Kabinets. Pievienot (jauna pudele (_. "Spānijas ielejas vīna dārzi", _. "Syrah", _. "Vīns", 750)) Kabinets. Pievienot (jauna pudele (_. "Wasatch Beers", _. "Poligāmijas nesējs", _. "Alus", 355)) Kabinets. Pievienot (jauna pudele (_. "Squatters Beer", _. "Provo Girl Pilsner", _. "Alus", 355))

Viss iepriekš minētais kods ir standarta kods VB.NET 1.0. Tomēr ņemiet vērā, ka, nosakot savu Pudele objektu, jūs iegūstat vairāku veidu priekšrocības vienā kolekcijā (šajā gadījumā abus) Stīgu un Decimāldaļa) un efektīva, tipa droša "novēlota iesiešana".

ForEach piemērs

Jautrība sākas, kad mēs izmantojam metodes. Lai sāktu, ieviesīsim pazīstamo Katram metode. Microsoft dokumentācijā ir iekļauta šī lietojuma sintakse definīcija:

Dim instance kā saraksts Dim action kā darbība (Of T) instancē. ForEach (darbība)

Microsoft definē tālāk darbība kā "deleģēt metodei, kas veic darbību ar tam nodoto objektu. Pašreizējā saraksta (T) elementi tiek individuāli nodoti darbības (T) delegātam. "

Padoms: Plašāku informāciju par delegātiem lasiet Delegātu izmantošana Visual Basic .NET Runtime Elastībai.

Pirmā lieta, kas jākodē, ir metode, kas tiks deleģēta. Pārpratums ir viens no galvenajiem punktiem lielākā daļa par VB.NET studentu apjukumu. Šajā funkcijā jeb apakšprogrammā tiek veikta visa pielāgotā kodēšana “Of” tipa objektiem.

Pareizi izpildot, jūs būtībā esat pabeidzis. Šajā pirmajā piemērā tas ir patiešām vienkārši. Viss Pudele tiek nodots, un apakšprogramma no tā izvēlas visu nepieciešamo. Kodēšana Katram arī pati par sevi ir vienkārša. Vienkārši aizpildiet pārstāvja adresi, izmantojot Adrese metode.

Sub displayBottle (ByVal b As Bottle) ResultList. Priekšmeti. Pievienot (_ b. Zīmols & "-" & _ b. Vārds & "-" & _ b. Kategorija & "-" & _ b. Izmērs) End Sub Private Sub ForEachButton_Click (... Rezultātu saraksts. Priekšmeti. Notīrīt () ResultList. Priekšmeti. Pievienot ("Katram piemēram") ResultList. Priekšmeti. Pievienojiet ("") skapi. ForEach (displeja pudeles Address) beigas Sub

FindAll piemērs

Atrodi visu ir nedaudz sarežģītāk. Microsoft dokumentācija Atrodi visu izskatās šādi:

Blāva parādība kā saraksts Dim atbilst kā paredzamai (no T) Dim returnValue kā sarakstam (no T) returnValue = instance. Atrast visu (atbilstība)

Šajā sintakse ir jauns elements, Paredzēt (no T). Pēc Microsoft domām, tā pārstāvēs metodi ", kas definē kritēriju kopumu un nosaka, vai norādītais objekts atbilst šiem kritērijiem. "Citiem vārdiem sakot, jūs varat izveidot jebkuru kodu, kas kaut ko atradīs saraksts. Es kodēju savu Paredzēt (no T) atrast kaut ko “Alus” Kategorija.

Tā vietā, lai izsauktu deleģētāja kodu katram saraksta vienumam, Atrodi visu atdod veselu Saraksts (T) kas satur tikai tās spēles, kas rodas no jūsu Paredzēt (no T). Tas ir atkarīgs no jūsu koda, lai abi definētu šo sekundi Saraksts (T) un kaut ko ar to dari. Mans kods tikai pievieno vienumus a ListBox.

Private Sub FindAllButton_Click (ByVal sūtītājs kā sistēma. Objekts, ByVal e kā sistēma. EventArgs) rokturi FindAllButton. Noklikšķiniet uz ResultList. Priekšmeti. Notīrīt () ResultList. Priekšmeti. Pievienot ("FindAll piemērs") ResultList. Priekšmeti. Pievienot ("") Dim apakšsarakstu kā sarakstu (no pudeles) apakšsarakstu = Kabinets. FindAll (AddressOf findBeer) Katrai r pudelei Apakšsarakstā ResultList. Priekšmeti. Pievienot (_ r. Zīmols & "-" & _ r. Vārds & "-" & _ r. Kategorija & "-" & _ r. Izmērs) Nākamās beigu apakšfunkcijas findBeer (ByVal b kā pudele) _ kā Būla ja (b. Kategorija = "Alus"), tad Atgriezties True Else Return False End, ja beigas funkcija

Kārtošanas piemērs

Galīgā metode, ko šis raksts pārbauda, ​​ir Kārtot. Atkal Microsoft izmanto kādu terminoloģiju, kuru jūs, iespējams, nepārzināt. Faktiski ir četras dažādas pārslodzes Kārtot metode:

  • Kārtot ()
  • Kārtot (IComparer (T))
  • Kārtot (salīdzinājums (T))
  • Kārtot (Int32, Int32, IComparer (T))

Tas ļauj sarakstam izmantot kārtošanas metodes, kas noteiktas .NET Framework, kodēt savu, izmantot sistēmu definēts kolekcijas veida vai šķirošanas daļas salīdzinājums, izmantojot sākuma pozīciju un skaitu parametrs.

Šajā piemērā, tā kā es faktiski izmantoju šo sintakse, lai faktiski veiktu kārtošanu, es izmantoju trešo pārslodzi.

x. Name.x. Vārds. Salīdzināt līdz (y. Nosaukums) (g. Vārds)

Esmu kodējis citu delegātu pie sava salīdzinātāja. Tā kā es gribu kārtot pēc manas Vārds, Es izvelku tieši šo vērtību no katra Pudele objekts, kas ir nodots, un izmantojiet Kārtot (salīdzinājums )>))). Kārtot metode faktiski pārkārto oriģinālu Saraksts (T). Tas ir tas, kas tiek apstrādāts pēc metodes izpildes.

Private Sub SortButton_Click (ByVal sūtītājs kā sistēma. Objekts, ByVal e kā sistēma. EventArgs) Rokturi SortButton. Noklikšķiniet uz ResultList. Priekšmeti. Notīrīt () ResultList. Priekšmeti. Pievienot ("Kārtot piemēru") ResultList. Priekšmeti. Pievienojiet ("") skapi. Kārtot (AddressOf sortCabinet) katrai pudelei kā skapī ResultList. Priekšmeti. Pievienot (_ r. Vārds & "-" & _ r. Zīmols & "-" & _ r. Kategorija & "-" & _ r. Izmērs) Nākamais gals Sub Private Shared Function sortCabinet (_ ByVal x kā pudele, ByVal y kā pudele) kā vesels skaitlis Return x. Vārds. Salīdzināt līdz (y. Nosaukums) beigas Funkcija

Šīs metodes tika izvēlētas, lai parādītu galvenos pamatnoteikumu metožu izmantošanas veidus Saraksts (T) faktiski ir kodēti. Tomēr tur ir vesela virkne citu metožu. Tas ir tas, kas padara Saraksts (T) tik noderīgi!