ArrayLists в .Net 2.0 - почти всегда неправильный способ сделать это. Даже если вы не знаете, что будет в списке, вам лучше использовать универсальный List<Object>
, потому что он сообщает другим, что список действительно может содержать что угодно, а не просто остаток от программиста .Net 1.1 .
Кроме этого, ключевое слово is
должно делать то, что вы хотите:
if (obj is string)
// do this
else if (obj is DateTime)
// do this
// ...
Обновление Я знаю, что это старое, но сегодня оно появилось в моих уведомлениях. Читая это снова, мне приходит в голову, что еще один хороший способ сделать это - через разрешение типов для перегруженной функции:
void DoSomething(string value) { /* ... */ }
void DoSomething(DateTime value) { /* ... */ }
DoSomething(obj);