Una soluzione più elegante che fa uso dei Generics:
codice:static class Settings<T> { public static T GetValue(string key, T def_value) { //cerca il valore nella tabella dei Settings: //se la chiave esiste fa il cast del valore //altrimenti ritorna def_value if (condizione) return (T)valore; else return def_value; } } //utilizzo int i = Settings<int>.GetValue("numero", 0); string s = Settings<string>.GetValue("scritta", "");