我有一个叫Questions(复数)的类.在这个类中有一个名为Question(单数)的枚举,看起来像这样.
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
Run Code Online (Sandbox Code Playgroud)
在Questions类中,我有一个get(int foo)函数返回一个Questions对象foo.有没有一种简单的方法从枚举中获取整数值,所以我可以做类似的事情Questions.Get(Question.Role)?
例如System.Net.HttpStatusCode Enum,我想获取HTTP状态代码而不是HTTP状态文本.
System.Net.HttpStatusCode.Forbidden应该返回403而不是"禁止".
我该如何提取价值?
如果有一个枚举存储在聚合类型中,则可能希望将其包含在类型的哈希代码中(假设典型的" 乘以素数 "哈希函数).如果只是调用SomeEnum.GetHashCode(),看起来即使在发布版本中,JIT也会对实例进行打包.
对此进行分析显示我的应用程序花费了大约10%的时间在各种GetHashCode函数中使用了拳击枚举.
几种值类型实现IEquatable或类似的接口,允许GetHashCode作为静态方法调用; 这避免了拳击.但是System.Enum不提供静态过载GetHashCode.有没有一些方法来计算应该使用的代码但是避免装箱?
c# ×3
enums ×2
.net ×1
casting ×1
clr ×1
hash ×1
hashtable ×1
int ×1
properties ×1
reflection ×1