我写了几行小程序,用控制台打印va.GetType和vb.GetType都不是Array,而是System.int32[]
var va = new int[] { 1, 2, 3 };
Array vb = va;
Console.WriteLine(va.GetType());
Console.WriteLine(vb.GetType());
为什么GetType返回的不是Array而不是System.Int32[]呢?
换句话说,什么类型的GetType()可能返回System.Array呢?
能否在运行时,用代码来判定一个object的实际类型,以及它的继承树呢?
反射机制能提供直接的判断吗? 还是需要IL的解析?