如何从枚举类型中获取数值?

6 浏览
0 Comments

如何从枚举类型中获取数值?

例如,对于System.Net.HttpStatusCode枚举,我想要获取HTTP状态码而不是HTTP状态文本。\nSystem.Net.HttpStatusCode.Forbidden应该返回403而不是\"Forbidden\"。\n我该如何提取这个值?

0
0 Comments

问题:如何从枚举中获取数值?

原因:当我们想要从枚举中获取数值时,使用System.Convert.ToInt32(response.StatusCode)可以返回状态码的数字值。但是,当我们没有枚举的类型时,这种方法就无法使用。例如:void DoSomethingWithEnum(Enum value) { int X = Convert.ToInt32(value); } 在这种情况下,普通的强制转换为int是无效的。此外,如果枚举是一个泛型类型参数,这种方法也适用。

解决方法:在这种情况下,可以使用传统的强制转换语法来解决问题,即将枚举值强制转换为int类型。这样可以避免Visual Studio代码分析生成警告CA1305,即"'Convert.ToInt32(object)'的行为可能会受到当前用户区域设置的影响"。以下是示例代码:void DoSomethingWithEnum(Enum value) { int X = (int)value; }

0
0 Comments

有时候我们需要从枚举类型中获取其对应的数值。下面将介绍问题的出现原因以及解决方法。

问题出现的原因是我们需要将枚举类型转换为数值类型。为了解决这个问题,我们可以使用类型转换将枚举类型转换为整数类型。

解决方法如下:

int code = (int)enumVariable;

通过将枚举变量转换为整数类型,我们可以得到其对应的数值。这种方法简单直接,可以快速获得枚举类型的数值。

另外,还有一种更加规范的方法可以获取枚举类型的数值。我们可以使用`GetHashCode()`方法来获取枚举类型的哈希码,从而得到其对应的数值。

int value = System.Net.HttpStatusCode.Forbidden.GetHashCode();

这种方法更加规范,可以确保我们得到的数值是唯一的,并且与枚举类型的定义相关联。

无论是使用类型转换还是使用`GetHashCode()`方法,我们都可以很方便地从枚举类型中获取其对应的数值。这些方法适用于各种枚举类型的操作,可以满足我们对枚举类型数值的需求。

0
0 Comments

如何从枚举中获取数值?

大多数枚举可以通过将其强制转换为基本类型int32来获取数值。例如,可以使用以下代码将枚举System.Net.HttpStatusCode.Forbidden转换为int类型的数值:

int value = (int)System.Net.HttpStatusCode.Forbidden;

然而,有一部分枚举不能简单地进行强制转换。这些枚举具有不同的基本类型。在这种情况下,您需要将其强制转换为相应的基本类型,如uint32等。您可以使用静态方法Enum.GetUnderlyingType(typeof(MyEnum))来获取枚举的基本类型。

另外,您还可以使用另一种更好的方法来获取枚举的数值,即使用枚举的GetHashCode()方法。例如,可以使用以下代码获取枚举System.Net.HttpStatusCode.Forbidden的数值:

int value = System.Net.HttpStatusCode.Forbidden.GetHashCode();

0