Type.GetType()和Type.GetElementType()之间的基本区别是什么

Gok*_*l E 1 c# system.reflection

我可以理解Type.GetType()Object的类型将会得到的场景,但是Type.GetElementType()它的作用是什么,它有什么作用?

任何人都可以清楚地解释它吗?

Jon*_*eet 9

Type.GetElementType用于数组,指针和by-ref参数类型.例如:

object value = new int[100];
Console.WriteLine(value.GetType()); // System.Int32[]
Console.WriteLine(value.GetType().GetElementType()); // System.Int32
Run Code Online (Sandbox Code Playgroud)

要么:

public void Foo(ref int x) {}
...
var method = typeof(Test).GetMethod("Foo");
var parameter = method.GetParameters()[0];
Console.WriteLine(parameter.ParameterType); // System.Int32&
Console.WriteLine(parameter.ParameterType.GetElementType()); // System.Int32
Run Code Online (Sandbox Code Playgroud)

至于何时使用它们 - 嗯,这取决于你开始使用反射.