我想回答这个问题,以为我可以查看Array源代码的内部以查看其实现方式。因此,我在.NET源代码中查找了该CreateInstance方法,发现该方法调用了主体为分号并在其他地方实现的外部方法。看起来像这样:
private unsafe static extern Array
InternalCreate(void* elementType,int rank,int *pLengths,int *pLowerBounds);
Run Code Online (Sandbox Code Playgroud)
题:
我如何找到上述外部方法的实现位置?
要查找任何extern方法的源代码,请执行以下操作:
extern方法的名称。就我而言InternalCreate。转到此处,查找方法到外部方法的映射。就我而言,我需要查找InternalCreate,这是映射的外观。该类的名称是ArrayNative并且方法是CreateInstance:
FCFuncElement("InternalCreate", ArrayNative::CreateInstance)
Run Code Online (Sandbox Code Playgroud)在此处找到映射的类。就我而言,我需要arraynative而且也需要该方法CreateInstance。实现就在那里,我在这里复制它,但为了简洁起见,删除了正文:
FCIMPL4(Object*, ArrayNative::CreateInstance,
void* elementTypeHandle, INT32 rank, INT32* pLengths, INT32* pLowerBounds)
{
//...
}
Run Code Online (Sandbox Code Playgroud)在这里,您将找到实现并研究代码。
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |