我有一个基类MyBase
和大约十几个派生类。我在代码中严重依赖访问者模式。所以基类是访问者的抽象宿主,每个派生类都是具体宿主。我正在使用实现IEqualityComparer<MyBase>
接口的独立比较器。此接口中有 2 个方法:Boolean Equals(MyBase a, MyBase b)
和Int32 GetHashCode(MyBase obj)
. 在这些方法中的每一个中,我都使用一个访问者来将一个实例解析MyBase
为一个派生类型的实例。这就是我避免处理铸造的方式。所以访问者是一个需要在每次调用Equals
and时创建的对象GetHashCode
。我已经阅读了很多关于保持GetHashCode
尽可能便宜的内容,所以问题是:
GetHashCode
考虑到性能,在and方法中创建对象(访问者)是Equals
一个坏主意吗?