How to get the numeric value from the Enum?
例如system.net.httpstatuscode枚举,我希望获取HTTP状态代码,而不是HTTP状态文本。System.Net.HttpStatusCode.Forbidden返回403而不是"禁止"。
如何提取值?
- 从httpwebrequest和httpwebresponse获取http状态代码(200、301、404等)的可能副本
对于大多数枚举,只需将其强制转换为Int32的基类型。
1
| int value = (int)System.Net.HttpStatusCode.Forbidden; |
- 什么是一个不能简单铸造的少数民族的例子?
- @Jimmy,任何具有不同基类型的枚举。在这些情况下,您只需要强制转换到适当的基类型(uint32等)。
- 我可能会补充说,您可以使用static enum.getUnderlyingType(typeof(myenum))方法来获取枚举的基础类型。
- 您可以使用更好的方法=>int value=system.net.httpStatusCode.Forbidden.getHashCode();
你可以把它转换成整数!
1
| int code = (int)enumVariable |
- 您可以使用一种原则性方法=>int value=system.net.httpstatuscode.forbidden.gethashcode();–
system.convert.toint32(response.statuscode)返回statuscode号
- 当您有一个枚举,但您没有枚举类型时,这是有效的。例如,void DoSomethingWithEnum(Enum value) { int X = Convert.ToInt32(value); }在这种情况下,正常的in t转换不起作用。
- 如果枚举是泛型类型参数,这也非常有效。
您可以使用.NET CLR函数的原则性方法。
1
| int value = System.Net.HttpStatusCode.Forbidden.GetHashCode(); |