Právě je čtvrtek 09. září 2010, 07:14

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 14 ]  Přejít na stránku Předchozí  1, 2
Autor Zpráva
 Předmět příspěvku: Re: Flags enumeration - test na hodnotu
OdeslatNapsal: pondělí 21. červen 2010, 14:41 
Offline
Nováček
Nováček
Uživatelský avatar

Registrován: neděle 20. červen 2010, 13:17
Příspěvky: 29
Bydliště: CZ
1) pravda ze smysluplne polozky vyctu se maji cislovat min. od jednicky, spousta lidi to ale instinktivne ignoruje, to je jedno
2) jj, ja to tak udelal ptz mi to pripada jako mensi michani jablek s hruskama nez predtim :), ta puvodni extension totiz zkonzumuje jakoukoliv strukturu co implementuje IConvertible, treba toto:

Kód:
struct Customer : IConvertible
{
    //....
}


coz muze vest k dost absurdnimu kodu, ale jinak pridani kontroly alespon za behu skrze GetType neni spatny napad i kdyz to brutalne zbrzdi, nejlepsi se asi rozhodnout mezi vykonem a blbuvzdornosti

Kód:
public static bool IsFlagSetFoolProof(this Enum enumInstance, Enum flag)
{
    if (enumInstance.GetType() != (flag.GetType())) return false; //nebo vyhodit exception
    var flagInt = Convert.ToInt32(flag);
    return (Convert.ToInt32(enumInstance) & flagInt) == flagInt;
}

_________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: Flags enumeration - test na hodnotu
OdeslatNapsal: pondělí 21. červen 2010, 18:52 
Offline
Nováček
Nováček

Registrován: pondělí 29. březen 2010, 13:15
Příspěvky: 27
Bydliště: Dubai & Jihlava
V Pascalu uz to mely viresene v jazice.

Jen tak jak nato myslim, napadlo me jestli da se enum lehce hodit do database? skousel to nekdo?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Flags enumeration - test na hodnotu
OdeslatNapsal: pondělí 21. červen 2010, 20:58 
Offline
Pokročilý
Pokročilý

Registrován: čtvrtek 09. červenec 2009, 15:41
Příspěvky: 436
Trochu OT.
anas píše:
V Pascalu uz to mely viresene v jazice.

Ty enumy a sety v pascalu byla obycejna pole (IN) a navic musely byt vyctove unikatni v ramci celeho programu (ale zase se s tim dalo "carovat").

anas píše:
Jen tak jak nato myslim, napadlo me jestli da se enum lehce hodit do database? skousel to nekdo?

To je uplne elementarni, jednoduse enum ulozis jako base-type enumu (default je int) a typ je lepsi ulozit nekde v metadatech k tabulce/objektu:
Kód:
// Kontrola.
if (Enum.IsDefined(typeof(MyEnum), dbInt))...

// Konverze.
MyEnum me = (MyEnum)dbInt;
int dbInt = (int)me;

_________________
How many Microsoft developers does it take to change a light bulb? None, they just change the standard to darkness.
Obrázek
Having a Cup<T> somewhere...


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: Flags enumeration - test na hodnotu
OdeslatNapsal: pondělí 21. červen 2010, 21:48 
Offline
Nováček
Nováček

Registrován: pondělí 29. březen 2010, 13:15
Příspěvky: 27
Bydliště: Dubai & Jihlava
Ja ne rovnam enum s SET .. IN .. ale to co se to resi o flag, tak jen jsem se na to tak spomel, a psal jsem co me napadlo. neco jako kdys se rika, premisleni nahlas.

A kdys jsem psal prispevek tak me napadlo o to database, tak jsem to dopsal, taky premisleni nahals. ale nikdy jsem to nevskousel. ale budu to asi pouzivat.

nelibi se mi tych 10 poly boolean a isTohle, nebo isTamtoho.

Diky, to premisleni nahlas je fakt uzitecne :lol:

Vis sice natym fora je este malo cleno, ale to vubec nezni spatne. hlavne ze to zije. ja napriklad este jsem nestihnul to precist vsechno :-)


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 14 ]  Přejít na stránku Předchozí  1, 2

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přeskočit na:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Český překlad – phpBB.cz

Google Pagerank - www.dotnetforum.czGoogle Pagerank S-Rank - www.dotnetforum.czS-Rank JyxoRank - www.dotnetforum.czJyxoRank


Valid XHTML 1.0 Transitional