首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

为何可以直接调用ReferenceEquals()?解决方法

2012-01-19 
为何可以直接调用ReferenceEquals()?cla,banewcl()bnewcl()boolblReferenceEquals(a,b)ReferenceEq

为何可以直接调用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
{

}

热点排行