Scusate ma perchè tutto questo sbattimento per fare una lista dinamica di oggetti di tipo diverso? Come ha già detto MItaly ogni classe di .NET è figlia della classe Object. Tu fai un oggetto di tipo ArrayList che contiene in automatico oggetti di tipo Object, poi estrai il tipo dell'oggetto in base all'esigenza tramite la Reflection:
codice:
class Program
{
static void Main(string[] args)
{
ArrayList lista = new ArrayList();
lista.Add("ciao");
lista.Add(32);
lista.Add(14.5);
lista.Add(new MioOggetto(1231219));
foreach (object obj in lista)
{
if (obj.GetType() == typeof(MioOggetto))
Console.Write((obj as MioOggetto).Telefono.ToString() + "\n");
else
Console.Write(Convert.ChangeType(obj, obj.GetType()).ToString() + "\n");
}
Console.Read();
}
}
public class MioOggetto
{
private int _tel;
public int Telefono
{
get { return _tel; }
set { _tel = value; }
}
public MioOggetto(int tel)
{
Telefono = tel;
}
}