C# 获取数组的MethodTable

C# 获取数组的MethodTable,c#,.net,pointers,C#,.net,Pointers,我正在尝试获取数组实例的Methodtable,例如int[],long[]等。 对于除数组之外的任何其他类,我都可以获得MerthodTable,而不会遇到任何问题 下面是我用来获取方法表指针的代码,以及我如何确保它工作的 private static unsafe int* GetMethodtable<T>(T obj) { var referenceForObject= __makeref(obj); return (int*)(*(int*)*((int*

我正在尝试获取数组实例的Methodtable,例如int[],long[]等。 对于除数组之外的任何其他类,我都可以获得MerthodTable,而不会遇到任何问题

下面是我用来获取方法表指针的代码,以及我如何确保它工作的

 private static unsafe int* GetMethodtable<T>(T obj) {
    var referenceForObject= __makeref(obj);
    return (int*)(*(int*)*((int*)&referenceForObject));
 }

var instance = new MyClass();
var methodtableAddress = (int*)*GetMethodtable(instance);
var @equals = (int*)typeof(MyClass).TypeHandle.Value == methodTableAddress;
private static unsafe int*GetMethodtable(T obj){
var referenceprobject=\uu makeref(obj);
返回(int*)(*(int*)*((int*)和引用对象));
}
var instance=new MyClass();
var methodtableAddress=(int*)*GetMethodtable(实例);
var@equals=(int*)typeof(MyClass).TypeHandle.Value==methodTableAddress;
在上述代码中,除数组类型外,对于任何其他类,
@equals
都是
true
。 我的问题是如何使用指向对象的指针获取数组类型的methodTableAddress