юзай:
public static int ToInt32(this object obj)
{
IConvertible converter = obj as IConvertible;
if(converter != null)
{
return converter.ToInt32(null);
}
return default(int);
}
void Foo(object o)
{
int a = o.ToInt32();
} |
и будет все выглядеть "красиво". Сравнивать Шарп с Явой/Питоном/etc. не никакого смысла, у каждого языка свои правила игры. И то, что валит ошибку в твоем коде — идеологически имхо верно (используя strong casting будь уверен, что там лежит именно твой тип данных), т.к. кастинг не полиморфный как в Яве (как я понял), иначе будет все безбожно тупить. | |