jo, teď na to koukám co jsem dneska ráno psal.. asi se budu muset řídit pravidlem, že po pulnoci jít spát už :D ... takže z toho prvního příkladu ignoruj ty 2 vlastnosti s návratovou hodnotou object, to ti bude házet, že to neví co máš na mysli...
veškeré přetěžování se vztahuje pouze na parametry, ať už počtem nebo typem, pokud chceš vracet více různých typů, ale zároveň ponechat parametry, tak nemáš jinou možnost, než vracet object a následně si to přetypovat na co chces nebo vracet nějakou struktůru/třídu a k ní přidat funkce pro převod do int/string apod.
pokud to budeš mít genericky jak jsem uvedl, tak C# není tak pohodlnej jako třeba C++ pro genericitu a kolikrát je to problém přetypovat na co přesně chceš.. v tom případu jak jsem uvedl, tak genricita je v pořádku, ale pokud chceš vrátit něco jinýho než, než je ten generickej typ třídy, tak máš problém (jde to, ale je to trochu delší kód)
jinak v tom případě jak si uvedl...
int a = neco["CESTA/POLOZKA1"]
string b = neco["CESTA/POLOZKA2"]
if (neco["CESTA/POLOZKA3"] == 12)
tak nejlepší by bylo nastavit to na int a v tom případě, kde to vracíš jako string, používat ještě ToString() .. tohle se běžně používá, protože tím jak si to napsal, to nikdy neuděláš