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