日期:2014-05-20  浏览次数:20766 次

为何可以直接调用ReferenceEquals()?
cl   a,b;
a=new   cl();
b=new   cl();
bool   bl=ReferenceEquals(a,b);

ReferenceEquals()是Object的静态方法,为何可以直接调用而不是Object.ReferenceEquals()?

------解决方案--------------------
Object 是所有类型的基类 继承了下来
所以不用 Object.ReferenceEquals()
在任何一个类下可以直接使用 ReferenceEquals()
------解决方案--------------------
MSDN:

Object 类

支持 .NET Framework 类层次结构中的所有类,并为派生类提供低级别服务。这是 .NET Framework 中所有类的最终基类;它是类型层次结构的根。
------解决方案--------------------
一句话..

Object是一切类的基类..

ReferenceEquals是Object类的一个静态方法..

而任何类都是继承Object基类的..

所以任何类中都有ReferenceEquals这个静态方法..

不知是否明白..
------解决方案--------------------
举个简单的例子:
基类A有一个方法public static void test();
类B继承A,那B自然就继承了A中的test方法..

class Program
{
static void Main(string[] args)
{
//B继承A的Test方法,所以可以直接调用..
B.test();
}
}

class A
{
public static void test()
{
Console.WriteLine( "haha ");
}
}
class B : A
{

}