我们使用在 DLL 中实现的组件。它继承自 System.Windows.Forms.Control。我们需要将它用作 .NET Hashtable 对象中的键。
正如MSDN 所说,
Hashtable 用作键的对象需要覆盖 Object.GetHashCode 方法(或 IHashCodeProvider 接口)和 Object.Equals 方法(或 IComparer 接口)。
但是我们说的控件没有自己的GetHashCode方法实现。Object.GetHashCode的文档告诉我们
如果未覆盖 GetHashCode,则通过调用基类的 Object.GetHashCode 方法计算引用类型的哈希码,该方法根据对象的引用计算哈希码
这是否意味着我们可以安全地在哈希表中“按原样”使用控件?