禅問答っつーかさ、変数名は入れ物に過ぎないってのを理解しないと。
C++のvoid *に相当するものが、Object。中になんでも入るけど、
中身が変換されてしまうわけではない。

static void Main(string[] args)
{
Object obj1 = "string";
Object obj2 = 0;
Console.WriteLine(obj1.GetType());
//->System.String
Console.WriteLine(obj2.GetType());
//->System.Int32
}