C# 从int强制转换到Enum仍返回int
我尝试从int转换为enum,但未成功,如下所示: 枚举C# 从int强制转换到Enum仍返回int,c#,casting,enums,C#,Casting,Enums,我尝试从int转换为enum,但未成功,如下所示: 枚举 public enum ePriceType{ Fixed = 1, Variable = 2 } 演员阵容 public int priceTypeA = 2; public ePriceType priceTypeB = (ePriceType)priceTypeA; 代码运行正常,但由于某种原因,当您检查priceTypeB的值时,它仍然显示int,而不是ePriceType,这会导致代码后面出现错误 有人能帮忙
public enum ePriceType{
Fixed = 1,
Variable = 2
}
演员阵容
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);
这里a将是“修复的”请显示产生错误的代码。下面的错误是什么?您如何“检查”值?不,还有其他问题。请再多些代码。@DanielHilgarth-不幸的是,产生错误的不是我的代码,而是当应用程序将对象发送到web服务时,即在.NET魔法代码中。错误是分配给变量
priceTypeB
的数值必须是枚举。@DavidM-通过设置断点“检查值”并将鼠标悬停在变量上检查变量为什么要在类中包装枚举?不必在类中包装枚举,我们也可以将其放在同一个类上不知道如何检查此值以及在哪里
-我添加了一个断点并从那里检查了值:)