从数组中获取实际类型

Geo*_*e R 0 c# arrays generics reflection

鉴于这个例子:

IColor[] items;
items = new IColour[]{ new SomeColour() };
Run Code Online (Sandbox Code Playgroud)

如何使用反射来查看项目,typeof(SomeColour)而不是typeof(IColour)?使用我熟悉的,typeof(items).GetElementType()给我IColour,而不是实际的类型.

Wou*_*ort 5

你要求的是不可能的.您的数组可以存储多个项目,每个项目具有不同的具体类型.

你的数组的类型是IColor.存储在索引0处的项的类型是SomeColour.如果您向数组中添加了第二项,该怎么办:AnotherColour.应该是什么类型的items

您可以通过使用获取存储阵列中的项目类型items[index].GetType(),其中index指向数组中的位置.