Kasulike geneeriliste ravimite nimekiri VB.NET-is

Generics laiendab VB.NETi võimsust ja paindlikkust paljudes valdkondades, kuid saate suurema jõudluse eelise ja rohkem programmeerimisvõimalusi Loend objekt [Loend (T-st)] kui ühegi teisega.

Kasutada Loend (T-st), peate mõistma, kuidas rakendada paljusid meetodeid, mida .NET Framework pakub. Allpool on toodud kolm näidet kasutades Igaühele, Leia kõikja Sorteeri, mis näitab, kuidas geneeriline Loend klassitööd.

Esimene samm on geneerilise toote loomine Loend. Andmeid saate mitmel viisil, kuid kõige lihtsam on õiglane Lisama seda. Allolev kood näitab, kuidas minu õlle- ja veinikollektsiooni liigitada!

Stardikood

Esmalt peab olema objekt, mis esindaks kollektsiooni pudelit. Windows Forms'i rakenduses peab vormiklass esmalt asuma failina või Visual Studio kujundaja ei tööta õigesti, nii et pange see lõppu:

Avaliku klassi pudel. Avalik bränd kui keelpill. Avalik nimi keelpillina. Avalik kategooria keelpillina. Avalik suurus kümnendkoha täpsusega. Avalik alam uus (_. ByVal m_Brand kui keelpill, _. ByVal m_Name As String, _. ByVal m_kategooria keelpillina, _. ByVal m_Size Decimal) Bränd = m_Brand. Nimi = m_Nimi. Kategooria = m_kategooria. Suurus = m_suurus. Lõpu alam. Lõpuklass
instagram viewer

Kollektsiooni ehitamiseks Lisama üksused. See on mis Vormi koormus sündmus:

Tuhmkapp nimekirjas (pudelist) = _. "Uus nimekiri (pudelist) Kabinet. Lisa (uus pudel (_. "Lossi oja", _. "Uintah Blanc", _. "Vein", 750)) Kabinet. Lisa (uus pudel (_. "Õlletootmisfirma Zion Canyon", _. "Springdale Amber Ale", _. "Õlu", 355)) Kabinet. Lisa (uus pudel (_. "Hispaania oru viinamarjaistandused", _. "Syrah", _. "Vein", 750)) Kabinet. Lisa (uus pudel (_. "Wasatch Beers", _. "Polügaamia porter", _. "Õlu", 355)) Kabinet. Lisa (uus pudel (_. "Squatters Beer", _. "Provo Girl Pilsner", _. "Õlu", 355))

Kõik ülaltoodud kood on VB.NET 1.0 standardkood. Pange aga tähele, määratledes oma Pudel objekt, saate samas kollektsioonis mitut tüüpi eeliseid (antud juhul mõlemat tüüpi) Keel ja Kümnendarv) ja tõhus, tüüpi ohutu "hiline sidumine".

Iga näide

Lõbus algab siis, kui me meetodeid kasutame. Alustuseks rakendame tuttavat Igaühele meetod. Microsofti dokumentatsioon sisaldab järgmist süntaksimääratlust:

Hämar toiming nimekirjas Hämar toiming toiminguna (Of T). ForEach (tegevus)

Microsoft määratleb veelgi tegevus kui "delegeerida meetodile, mis teostab toimingu talle edastatud objektiga. Praeguse loendi (T) elemendid antakse individuaalselt toimingu (T) esindajale. "

Näpunäide: Delegaatide kohta lugege lähemalt Delegaatide kasutamine Visual Basic .NET-is käitusaja paindlikkuse tagamiseks.

Esimene asi, mida peate kodeerima, on delegeeritud meetod. Selle ühe võtmepunkti valesti mõistmine on allikas kõige rohkem VB.NET-i õpilaste segadusest. Selles funktsioonis ehk alamprogrammis tehakse kõik "Of" tüüpi objektide kohandatud kodeerimine.

Õige täitmise korral olete põhimõtteliselt valmis. Selles esimeses näites on see tõesti lihtne. Terve eksemplar Pudel on läbitud ja alamprogramm valib sealt välja kõik vajaliku. Kodeerimine Igaühele ka see on iseenesest lihtne. Sisestage lihtsalt esindaja aadress, kasutades AadressOf meetod.

AlamkuvaPudel (ByVal b kui pudel) ResultList. Esemed. Lisa (_ b. Bränd & "-" & _b. Nimi & "-" & _ b. Kategooria & "-" & _ b. Suurus) End Sub Private Sub ForEachButton_Click (... ResultList. Esemed. Tühjenda () ResultList. Esemed. Lisage ("Iga näite jaoks") ResultList. Esemed. Lisage ("") kapp. ForEach (displayOotBottle) End Sub

Leia kõik näited

Leia kõik on natuke keerulisem. Microsofti dokumentatsioon domeenile Leia kõik näeb välja selline:

Tuhm eksemplar loendina Hämar sobitub ennustatuna (T-st) Hävib tagasiväärtus loendina (T-st) returnValue = eksemplar. Leia kõik (vaste)

See süntaks sisaldab uut elementi, Ennustus (T-st). Microsofti sõnul esindab see meetodit ", mis määratleb kriteeriumide kogumi ja määrab, kas määratud objekt vastab nendele kriteeriumidele. "Teisisõnu, saate luua mis tahes koodi, mis leiab midagi nimekiri. Ma kodeerisin oma Ennustus (T-st) "Õllest" midagi leida Kategooria.

Selle asemel, et kutsuda loendi iga üksuse esindaja kood, Leia kõik tagastab kogu Loend (T) mis sisaldavad ainult vasteid, mis tulenevad teie Ennustus (T-st). Selle sekundi määratlemiseks on teie koodi ülesanne Loend (T) ja tee sellega midagi. Minu kood lisab üksused lihtsalt a-le Loendikast.

Privaatne alamotsingAllButton_Click (ByVal saatja kui süsteem. Objekt, ByVal e kui süsteem. EventArgs) Käsitseb FindAllButtonit. Klõpsake nuppu ResultList. Esemed. Tühjenda () ResultList. Esemed. Lisage ("FindAll näide") ResultList. Esemed. Lisage ("") Tühi alamloend nimekirjas (pudelist) alamloendiks = Kabinet. FindAll (addressOf findBeer) iga pudeli kohta alamloendis ResultList. Esemed. Lisa (_ r. Bränd & "-" & _ r. Nimi & "-" & _ r. Kategooria & "-" & _ r. Suurus) Järgmine lõpp Alamfunktsioon findBeer (ByVal b pudelina) _ Booleanina kui (b. Kategooria = "Õlu") siis tagastage True Else Return vale lõpp, kui funktsioon End

Sordi näide

Viimane meetod, mida see artikkel uurib, on Sorteeri. Microsoft kasutab jällegi mõnda terminoloogiat, millega te ehk tuttav pole. Sellel on tegelikult neli erinevat ülekoormust Sorteeri meetod:

  • Sorteeri ()
  • Sorteeri (IComparer (T))
  • Sorteeri (võrdlus (T))
  • Sorteeri (Int32, Int32, IComparer (T))

See võimaldab teil kasutada loendis .NET-raamistikus määratletud sortimismeetodeid, omaenda koodi kodeerida, süsteemi kasutada määratletud võrdlus kollektsiooni tüübi jaoks või sortimiseks osa, kasutades lähtepositsiooni ja arvu parameeter.

Kuna selles näites kasutan sortimise tegemiseks järgmist süntaksi, kasutan kolmandat ülekoormust.

x. Nimi.x. Nimi. VõrdleTo (y. Nimi) (y. Nimi)

Olen kodeerinud mõne teise esindaja omaenda võrdlejale. Kuna tahan sorteerida oma järgi Nimi, Tõmban just selle väärtuse igast eksemplari välja Pudel objekt, mis on läbitud ja kasutage Sorteeri (võrdlus )>))). Sorteeri meetod korraldab originaali ümberkorraldamise Loend (T). Seda töödeldakse pärast meetodi käivitamist.

Private Sub SortButton_Click (ByVal saatja kui süsteem. Objekt, ByVal e kui süsteem. EventArgs) Käsitseb nuppu SortButton. Klõpsake nuppu ResultList. Esemed. Tühjenda () ResultList. Esemed. Lisage ("Sordi näide") ResultList. Esemed. Lisage ("") kapp. Sorteeri (AddressOf sortCabinet) iga pudeli jaoks kapis ResultList. Esemed. Lisa (_ r. Nimi & "-" & _ r. Bränd & "-" & _ r. Kategooria & "-" & _ r. Suurus) Järgmine lõpp Sub Private Shared Function sortCabinet (_ ByVal x pudelina, ByVal y pudelina) täisarvuna Return x. Nimi. VõrdleTo (y. Nimi) lõppfunktsioon

Need meetodid valiti selleks, et näidata peamisi viise, mida raamistik 2006 Loend (T) on tegelikult kodeeritud. Seal on aga terve rida teisi meetodeid. Just see teebki Loend (T) nii kasulik!

instagram story viewer