Dobrý den, nedaří se mi přijít na řešení následujícího problému. Tuším, že řešení nebude buď žádné a nebo se bude skrývat v generických typech, ale své možnosti už jsem bohužel vyčerpal. Ve své aplikaci mám mnoho různých výčtů, které dědí v vždy z jednoho z celočíselných datových typů (byte, short, int...). Výčty jsem zvolil proto, že metoda console.writeline standardně vytiskne jejich název místo číselné hodnoty, což je situace, kterou potřebuji nejčastěji a v případě použití konstant by to bylo složitější. Nyní se ale snažím napsat univerzální metodu, která vytiskne jejich číselnou podobu v HEX podobě, s počtem znaků dle jejich "base typu." Čili např.:
Console.Write("{0:X2}h", val)
pro byte nebo
Console.Write("{0:X4}h", val)
pro short, atd Zatím mne nenapadá jiné řešení než použít jednu přetíženou metodu, pro každý jednotlivý výčet a nebo mít vstupní parametr metody typu object a přetypovat na správný typ už před vložením parametru (což předpokládá znalost typu každého z enumů). Napadá prosím někoho nějaké elegantnější řešení? Děkuji
|