Forum » Programiranje » [C#] unboxing
[C#] unboxing
Microsoft ::
Dela tole:
Int32 i = 555;
System.Type t;
Object o = i;
t = o.GetType();
Torej, vrne ti System.Type in ne System.Int32. Dela tole:
i = (int)o;
in
if(t.ToString() == "System.Int32"){i = (int)o;}
by Miha
Int32 i = 555;
System.Type t;
Object o = i;
t = o.GetType();
Torej, vrne ti System.Type in ne System.Int32. Dela tole:
i = (int)o;
in
if(t.ToString() == "System.Int32"){i = (int)o;}
by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr
64202 ::
Sem pogledal cil specifikacijo in sem nasel dve instrukcije za caste: castclass in refanyval. Obe pa zahtevata tip ob compile-timeu, torej take runtime mahinacije odpadejo. Taksen ultradinamicen cast v C# verjetno nima nobene uporabne vrednosti, jezik je namrec presvoh.
MS: Type je ze vredu, sami tipi naceloma niso vrednosti. Lahko pa imajo run-time predstavitev, ki je tipa Type
MS: Type je ze vredu, sami tipi naceloma niso vrednosti. Lahko pa imajo run-time predstavitev, ki je tipa Type
borchi ::
@microsoft: ja, nekako tako delam sedaj.
@64202: ehhh, tega ravno nisem hotu slišat se pravi je treba za vsak k*rčev objekt preverjat tip in ga pol castat?
@64202: ehhh, tega ravno nisem hotu slišat se pravi je treba za vsak k*rčev objekt preverjat tip in ga pol castat?
l'jga
64202 ::
Sej mogoce se motim pa nisem dobro pogledal :)
Drugace pa... odvisno kaj delas. Mogoce tole kej pomaga, ce uporabis dispatch tabelo za tipe (ne znam zares C#, priblizna psevdokoda ):
Kar je simulacija tegale:
Drugace pa... odvisno kaj delas. Mogoce tole kej pomaga, ce uporabis dispatch tabelo za tipe (ne znam zares C#, priblizna psevdokoda ):
Hash tabela = new Hash(); tabela["System.Int32"] = akcija1; tabela["System.Blub"] = akcija2; akcija1(Object x_) { Int32 x = (Int32)x_; ... } akcija2(Object x_) { Blub x = (Blub)x_; ... } //uporaba za Object o tabela[o.getType().ToString()](o);
Kar je simulacija tegale:
akcija(Int32 x) {...} akcija(Blub x) {...} //uporaba za Object o akcija( (o.getType()) o );
noraguta ::
pred casom sem podoben problem rešil vsaj za collectionBase v nemerlu(dotnet 1.1) .
takole http://freeweb.siol.net/apenet/noraColl... (zaradi type inferencinga in polymorfizma na funkcijami se , da casting lepo skriti v indexer). se pravi zelo java like generik. na zalost pa ne dela serializacija. (c# je rahlo konzervativen , okrog sintaktičnih bonbončkov).
takole http://freeweb.siol.net/apenet/noraColl... (zaradi type inferencinga in polymorfizma na funkcijami se , da casting lepo skriti v indexer). se pravi zelo java like generik. na zalost pa ne dela serializacija. (c# je rahlo konzervativen , okrog sintaktičnih bonbončkov).
Pust' ot pobyedy k pobyedye vyedyot!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] ukaz radirkaOddelek: Programiranje | 1109 (902) | japol |
» | [Visual C#] kako narediti vrstice?Oddelek: Programiranje | 1703 (1185) | dbeong |
» | c# classOddelek: Programiranje | 2259 (1853) | japol |
» | [ASP.NET]Oddelek: Programiranje | 1321 (1175) | OmegaM |
» | ASP- prenašanje vrednostiOddelek: Izdelava spletišč | 1358 (1193) | Microsoft |