从int到Enum的强制转换仍返回int
本文关键字:int 转换 返回 Enum | 更新日期: 2023-09-27 18:20:52
我正试图从int转换为enum,但没有成功,如下所示:
简体中文
public enum ePriceType{
Fixed = 1,
Variable = 2
}
CAST
public int priceTypeA = 2;
public ePriceType priceTypeB = (ePriceType)priceTypeA;
代码运行良好,但由于某种原因,当您检查priceTypeB的值时,它仍然显示int
,而不是ePriceType
,这会导致代码后面的错误。
有人能帮忙吗?
更新
事实上,这个问题要复杂得多,涉及到web服务的客户端。我试着按照上面的方式简化它,但显然没有完全奏效,我不确定如何最简单地解释整个问题:(无论如何,谢谢你的回答
当你检查priceTypeB的值时,它仍然显示一个int
不知道你是如何检查这个值的,也不知道你为什么在哪里看到int
,但以下检查非常有效:
public enum ePriceType
{
Fixed = 1,
Variable = 2
}
class Program
{
static void Main()
{
int priceTypeA = 2;
ePriceType priceTypeB = (ePriceType)priceTypeA;
if (priceTypeB == ePriceType.Variable)
{
Console.WriteLine("Variable");
}
}
}
试试这个:
public class EnumProvider
{
public enum ePriceType{
Fixed = 1,
Variable = 2
}
var a = Enum.GetName(typeof(EnumProvider.ePriceType), 1);
这里的是"固定的"