C#中每个变量(对象)的智能感知显示GetHashCode(),ToString(),Equals(),GetType()

时间:2013-07-24 22:05:53

标签: c# methods intellisense

在C#的编程生涯中,每当我在C#中创建一些变量(或对象)时,我都会写这个变量(对象)的Intellisense向我展示标准的4种方法。

例如,我创建了空类SomeClass

public class SomeClass
{

}

当我创建这个类的对象,并调用一些方法时,即使这个类是空的,intellisense也会告诉我这4个方法。

static void Main(string[] args)
{
    SomeClass sc = new SomeClass();
       +---------------+
    sc.|Equals         |
       |GetHashCode    |
       |GetType        |
       |ToString       |
       +---------------+
}

任何人都可以解释我为什么吗?

感谢。

2 个答案:

答案 0 :(得分:4)

所有类都继承自System.Object - 包含这些方法。

答案 1 :(得分:3)

每个类都隐式地从System.Object命名空间继承Object类。基本上,它是类型层次结构的根。

此外,除了您指出的4种方法外,每个对象还从Finalize继承Object方法。

由于您的类继承自Object,因此该语句有效:

object sc = new SomeClass();