gpt4 book ai didi

c# - 使用 GetHashCode 获取 Enum int 值

转载 作者:IT王子 更新时间:2023-10-29 04:25:58 24 4
gpt4 key购买 nike

我有一个枚举

public enum INFLOW_SEARCH_ON
{
ON_ENTITY_HANDLE = 0,
ON_LABEL = 1,
ON_NODE_HANDLE = 2
} // enum INFLOW_SEARCH_ON

我必须使用此枚举在网格列中进行搜索。

获取我正在使用的列索引

  MyEnumVariable.GetHashCode() 

哪个工作正常,或者我应该使用

  (short)MyEnumVariable

我对使用 GetHashCode() 有点困惑。使用有什么问题吗?

最佳答案

使用 GetHashCode() 是不正确的。您应该转换为 int。以你的方式使用它是要求猛禽(或雷蒙德)来吃你。

GetHashCode() 恰好返回枚举的整数值是一个实现细节,可能会在未来的 .net 版本中发生变化。

GetHashCode() 保证如果两个值相等,它们的哈希码也相等。反之亦然。

我的经验法则是,如果 GetHashCode 返回一个常量值,您的程序应该仍能正常工作(但可能会慢很多 ),因为一个常量 GetHashCode 简单地履行了契约(Contract),但分布属性不佳。

关于c# - 使用 GetHashCode 获取 Enum int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com