• 31
  • 1月

Q1:在类中重写Equal方法,类的静态方法Equals就可以比较两个对象?
Q2:在类中实例化自己为一个字段对象有什么用处?(p265)
21:36 2007-1-21
刚才翻了一下书,重新看了一下那个程序,Q2总算是明白了。书上那个类是将自己实例化成了自身中的一个静态的Default字段,好处是可以在使用时不用每次都显式地实例化一个此类的变量,只需直接使用类的这个静态字段就可以获得一这此类的实例,在重复使用时能提高效率。
21:27 2007-1-31
又看了一下Q1也终于想明白了。首先Q1这个问题本身就有点小问题:书上代码中重写的是Equals(object obj)这个方法,不是Equal,基类中也没有Equal方法。
Equals 方法有两个重载:public virtual bool Equals(object obj)与public static bool Equals(object objA , object objB),是两个相互无关的方法,其中第二个是静态的,可以在没有实例的情况下使用。
至 于为什么会让我产生这个问题,是因为书上的代码中对两个对象同时使用了这两种方法进行比较,结果相同都为false。让我产生了误解,其实书中重写了 Equals(object obj)这个方法,比较一个对象与另一个对象的内容是否相等,而Equals(object objA , object objB)还是原始那个方法,并不会比较对象的内容,它只是简单地检查一下两个对象是否引用了相同的实例,当然两个内容都不同的对象不可能引用相同的实 例,于是也返回false。
问题解决。
21:46 2007-1-31

标签:

您可以对这篇文章发表一条评论,或者在您自己的网站中引用 (Trackback) 它

发表一条评论

所有标签:.net Ajax Java javascript Linux map MySQL RSS TD-SCDMA Ubuntu vim web Win7 乱码 基础知识 备份 奥运会 希望泉 性能 缓存 编程