*   >> Lese Utdanning Artikler >> education >> languages

Hvordan lage en generisk type i vb i Vb.net

Gen (Of String, String) ("Hello", "World!") Console.WriteLine (ga.V1 + ga.V2)

"Legg til en dobbel og en Integer bruker Obj klassen Dim ob Som Obj = Ny Obj (10,125, 2005) Console.WriteLine (CTast (ob.V1, Double) + CTast (ob.V2, Integer))

"Legg til en dobbel og en Integer bruker Gen klassen Dim gb Som New Gen (Of Double, heltall) (10,125, 2005) Console.WriteLine (gb.V1 + gb.V2)

//C #

//Legg to strenger bruker Obj klassen Obj oa = new Obj ("Hello", "World!"); Console.WriteLine ((string) oa.t + (string) oa.

u);

//Legg to strenger bruker Gen klassen

Gen GA = ny Gen ("Hello," , "Verden!"); Console.WriteLine (ga.t + ga.u);

//Legg en dobbel og en int bruker Obj klassen Obj ob = new Obj (10,125, 2005); Console.WriteLine ((dobbel) ob.t + (int) ob.u);

//Legg en dobbel og en int bruker Gen klassen

Gen gb = new Gen (10,125 2005); Console.WriteLine (gb.t + gb.u);

Hvis du kjører denne koden i en konsoll program, obj og Gen klasser produsere akkurat de samme resultatene.

Men koden som bruker Gen klassen faktisk fungerer raskere fordi det ikke krever boksing og unboxing til og fra Object-klassen. (Boksing og unboxing er omtalt i avsnittet "Hva er Boxing og Unboxing?" Senere i dette kapitlet.) I tillegg vil utviklere ha en mye lettere tid med Gen klassen. Først ville utviklerne ikke å kaste manuelt fra Object klassen til de riktige typene. For det andre ville skrive feil bli fanget ved kompilering heller enn under kjøring.

For å demonstrere at nytte, bør du vurdere følgende kode, som inneholder en feil (vist i fet skrift):

'VB

"Legg til en dobbelseng og en Integer bruker Gen klassen Dim gb Som New Gen (Of Double, Integer) (10,125, 2005) Console.WriteLine (gb.V1 + gb.V2)

"Legg til en dobbelseng og en Integer bruker Obj klassen Dim ob Som Obj = Ny Obj (10,125, 2005) Console.WriteLine (CTast (ob.V1, Integer) + CTast (ob.V2, Integer))

//C #

//Legg en dobbel og en int bruker Gen klasse

Gen gc = new Gen (10,125, 2005); Console.WriteLine (gc.t + gc.

u);

//Legg en dobbel og en int bruker Obj klassen Obj oc = new Obj (10,125, 2005); Console.WriteLine ((int) oc.t + (int) oc.u);

Den siste linjen i koden prøven inneholder en feil-the oc.V1 verdi (oc.t i C #) er støpt til en int i stedet for til en dobbel. Dessverre, vil kompilatoren ikke ta feil. I stedet, i C #, er en run-time unntak kastes når runtime forsøker å kaste en dobbe

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.