Info

Užitočný všeobecný zoznam vo VB.NET

Užitočný všeobecný zoznam vo VB.NET


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Generici rozširujú výkon a flexibilitu siete VB.NET v mnohých oblastiach, ale vo všeobecnej podobe získate väčší úžitok z výkonu a viac možností programovania. zoznam objekt Zoznam (z T) ako s akýmkoľvek iným.

Použit Zoznam (z T), musíte pochopiť, ako implementovať mnoho metód, ktoré poskytuje .NET Framework. Nižšie sú uvedené tri príklady použitia Pre každý, findalla druh, ktorý ukazuje, ako všeobecné zoznam triedy práce.

Prvým krokom je vytvorenie generika zoznam, Údaje môžete získať mnohými spôsobmi, ale najjednoduchšie je spravodlivé pridať ono. Nasledujúci kód ukazuje, ako klasifikovať moju zbierku piva a vína!

Štartovací kód

Najprv musí existovať predmet, ktorý bude predstavovať fľašu zo zbierky. V aplikácii Windows Forms musí byť trieda Form najprv v súbore, alebo návrhár Visual Studio nebude správne fungovať, takže to vložte na koniec:

Fľaša verejnej triedy Verejná značka ako reťazec Verejné meno ako reťazec Verejná kategória ako reťazec Verejná veľkosť ako desatinná čiarka Verejné Sub Nové (_ ByVal m_Brand As String, _ ByVal m_Name As String, _ ByVal m_Kategória ako String, _ ByVal m_Size As Decimal) Značka = m_Brand Name = m_Name Category = m_Category Size = m_Size End Sub End End Class

Ak chcete zostaviť kolekciu, pridať položiek. To je to, čo je v Načítanie formulára udalosť:

Dim Cabinet As List (Of Bottle) = _ "Nový zoznam (Bottle) Cabinet.Add (New Bottle (_" Castle Creek ", _" Uintah Blanc ", _" Wine ", 750)) Cabinet.Add (New Bottle) (_ "Zion Canyon Brewing Company", _ "Springdale Amber Ale", _ "Beer", 355)) Cabinet.Add (nová fľaša (_ "Spanish Valley Vineyards", _ "Syrah", _ "Wine", 750)) ) Cabinet.Add (Nová fľaša (_ "Wasatch Beer", _ "Polygamy Porter", _ "Beer", 355)) Cabinet.Add (Nová fľaša (_ "Squatters Beer", _ "Provo Girl Pilsner", _ " Pivo ", 355))

Všetky vyššie uvedené kódy sú štandardnými kódmi vo VB.NET 1.0. Všimnite si však, že definovaním svojej vlastnej fľaša Ak získate objekt, získate výhody viacerých typov v rovnakej kolekcii (v tomto prípade obidvoch) povrázok a desatinný) a účinný typ „oneskorená väzba“.

Každý príklad

Zábava sa začína, keď použijeme metódy. Ak chcete začať, poďme implementovať známe Pre každý metóda. Dokumentácia spoločnosti Microsoft obsahuje túto definíciu syntaxe použitia:

Dim instance As List Dim akcie ako Action (Of T) instance.ForEach (action)

Microsoft ďalej definuje akčné ako „delegovať na metódu, ktorá vykonáva akciu s objektom, ktorý mu bol odovzdaný. Prvky aktuálneho zoznamu (T) sa individuálne odovzdajú delegátovi akcie (T).“

Tip: Ďalšie informácie o delegátoch nájdete v téme Používanie delegátov v jazyku Visual Basic .NET pre flexibilitu runtime.

Prvá vec, ktorú musíte kódovať, je metóda, ktorá bude delegovaná. Nepochopenie tohto jedného kľúčového bodu je zdrojom väčšina zámeny študentov VB.NET. Táto funkcia alebo podprogram je miestom, kde sa vykonáva všetky prispôsobené kódovanie pre objekty typu „Of“.

Pri správnom výkone ste v podstate hotoví. V tomto prvom príklade je to naozaj jednoduché. Celá inštancia fľaša prechádza a podprogram z neho vyberie všetko potrebné. Kódovanie Pre každý sám o sebe je tiež jednoduchý. Stačí vyplniť adresu delegáta pomocou AddressOf metóda.

Sub displayBottle (ByVal b As Bottle) ResultList.Items.Add (_ b.Brand & "-" & _ b.Name & "-" & _ b.Category & "-" & _ b.Size) End Sub Private Sub ForEachButton_Click (… ResultList.Items.Clear () ResultList.Items.Add ("Pre každý príklad") ResultList.Items.Add ("--------------------- - ") Cabinet.ForEach (AddressOf displayBottle) End Sub

Nájdite príklad

findall je trochu komplikovanejšia. Dokumentácia spoločnosti Microsoft pre findall vyzerá takto:

Dim inštancia ako zoznam Dim zhoda ako predikát (z T) Dim returnValue ako zoznam (z T) returnValue = instance.FindAll (zhoda)

Táto syntax obsahuje nový prvok, Predikát (z T), Podľa spoločnosti Microsoft to bude predstavovať metódu „, ktorá definuje množinu kritérií a určuje, či špecifikovaný objekt tieto kritériá spĺňa.“ Inými slovami, môžete vytvoriť akýkoľvek kód, ktorý nájde niečo v zozname. Zakódoval som svoje Predikát (z T) nájsť niečo v „Pive“ kategórie.

Namiesto volania delegátskeho kódu pre každú položku v zozname, findall vráti celok List (T) obsahujúce iba zhody, ktoré sú výsledkom vašej hry Predikát (z T), Je na vašom kóde, aby ste definovali túto sekundu List (T) a s tým niečo urobiť. Môj kód len pridá položky do listbox.

Private Sub FindAllButton_Click (odosielateľ ByVal ako System.Object, ByVal e As System.EventArgs) Spracuje FindAllButton.Click ResultList.Items.Clear () ResultList.Items.Add ("FindAll Example") ResultList.Items.Add ("--- -------------------- ") Dim subublist As List (Of Bottle) sublist = Cabinet.FindAll (AddressOf findBeer) Pre každé r ako Bottle In sublist ResultList.Items. Pridať (_ r.Brand & "-" & _ r.Name & "-" & _ r.Category & "-" & _ r.Size) Next End Sub Funkcia findBeer (ByVal b As Bottle) _ As Boolean If ( b.Category = "Beer") Potom vráťte True Else Return False End, ak End End Function

Zoradiť príklad

Poslednou metódou, ktorú tento článok skúma, je druh, Spoločnosť Microsoft opäť používa určitú terminológiu, ktorú nemusíte poznať. V skutočnosti existujú štyri rôzne preťaženia druh metóda:

  • Druh ()
  • Druh (IComparer (T))
  • Druh (Porovnanie (T))
  • Zoradiť (Int32, Int32, IComparer (T))

To vám umožní použiť metódy zoradenia definované v .NET Framework pre zoznam, kódovať svoje vlastné, použiť porovnávanie definované systémom pre typ alebo zoradiť časť kolekcie pomocou parametra počiatočná pozícia a počet.

V tomto príklade, pretože používam nasledujúcu syntax na skutočné vykonanie zoradenia, používam tretie preťaženie.

x.Name.x.Name.CompareTo (y.Name) (y.Name)

Kódoval som iného delegáta do môjho vlastného porovnávača. Pretože chcem triediť podľa môjho názov, Vytiahnem práve tú hodnotu z každej inštancie fľaša objekt, ktorý je odovzdaný a použiť Zoradiť (porovnanie <(z)>)), druh metóda skutočne mení usporiadanie originálu List (T), To sa spracováva po vykonaní metódy.

Private Sub SortButton_Click (odosielateľ ByVal ako System.Object, ByVal e As System.EventArgs) Rukoväte SortButton.Click ResultList.Items.Clear () ResultList.Items.Add ("Sort sort") ResultList.Items.Add ("--- --- -------------------- ") Cabinet.Sort (AddressOf sortCabinet) pre každé r ako fľaša v kabinete ResultList.Items.Add (_ r.Name &" - ​​" & _ r.Brand & "-" & _ r.Category & "-" & _ r.Size) Next End Sub Private Shared Function Function sortCabinet (_ ByVal x As Bottle, ByVal y As Bottle) As Integer Return x.Name. CompareTo (y.Name) End Function

Tieto metódy boli vybrané, aby demonštrovali hlavné spôsoby, ktorými sa rámcové metódy v roku 2007 List (T) sú v skutočnosti kódované. Existuje však celý rad ďalších metód. To je to, čo robí List (T) tak užitočné!



Komentáre:

  1. Dovev

    bravo ... keep it up ... super

  2. Bohannon

    Môžem ti pomôcť?

  3. Abydos

    Bravo, skvelá správa

  4. Bors

    The author needs to post a monument for this! :)

  5. Tazahn

    Myslím, že nemáš pravdu. Som si istý. Môžem brániť pozíciu. Napíšte mi v PM, budeme komunikovať.



Napíšte správu