C# 其中是InternalEquals的实现(对象objA、对象objB)

C# 其中是InternalEquals的实现(对象objA、对象objB),c#,.net,equals,class-library,C#,.net,Equals,Class Library,在使用Reflector反汇编.Net源代码时,我遇到了Object类中的Equals实现,它引用了 bool InternalEquals(object objA, object objB); internal static extern bool InternalEquals(object objA, object objB); 这又是指 bool InternalEquals(object objA, object objB); internal static extern bool

在使用Reflector反汇编.Net源代码时,我遇到了Object类中的Equals实现,它引用了

bool InternalEquals(object objA, object objB);
internal static extern bool InternalEquals(object objA, object objB);
这又是指

bool InternalEquals(object objA, object objB);
internal static extern bool InternalEquals(object objA, object objB);

我现在很困惑,在哪里可以找到这个
InternalEquals(object objA,object objB)
函数的实现,它是如何使用这个函数的,在哪个.Net程序集中定义了这个函数,以及是否所有的东西都是从零开始为.Net源代码编写的,那为什么我找不到这个函数的实现呢。

它被声明为
[MethodImpl(methodimpoptions.InternalCall)]
。这意味着它是作为本机过程而不是.NET程序集在CLR本身中实现的

通过查看,可以查看类似的CLR源代码

在SSCLI 2.0中,它实现为(在
sscli20/clr/src/vm/comobject.cpp
):


首先,在sscli20\clr\src\vm\ecall.cpp函数映射(“InternalEquals”->ObjectNative::Equals)中找到:

接下来,找到一个实现ObjectNative::Equals(由Mehrdad Afshari发布)

指向SSCLI的链接: