微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 当用作词典中的键时,是否会覆盖结构导致装箱的GetHashCode?

通常,如果结构实现了一个接口,那么将这样的结构分配给一个接口变量会引起装箱,例如:

interface IFoo {}

struct S : IFoo {}

S s = ...
IFoo f = s; // Boxing here

但也有例外.似乎实现了IEquatable< T>.并在字典中使用这样的结构作为键,不会导致拳击.那么问题是,如果我只是覆盖GetHashCode而不实现IEquatable< T>?它会陷入某种特殊情况吗?

解决方法

如果你没有实现IEquatable< T>然后在调用Equals时将结构化框. Equals是一个方法,因此需要引用来获取关联的方法表.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐