C# 从int强制转换到Enum仍返回int

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,这会导致代码后面出现错误 有人能帮忙

我尝试从int转换为enum,但未成功,如下所示:

枚举

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-通过设置断点“检查值”并将鼠标悬停在变量上检查变量为什么要在类中包装枚举?不必在类中包装枚举,我们也可以将其放在同一个类上
不知道如何检查此值以及在哪里
-我添加了一个断点并从那里检查了值:)