我正在尝试从int转换为枚举,但未成功,如下所示:
ENUM
public enum ePriceType{
Fixed = 1,
Variable = 2
}
CAST
public int priceTypeA = 2;
public ePriceType priceTypeB = (ePriceType)priceTypeA;
代码运行正常,但出于某种原因,当您检查priceTypeB的值时,它仍会显示int
而不是ePriceType
,这会导致代码中的错误进一步发生。
有人可以帮忙吗?
更新
事实上,涉及Web服务的客户端这个问题要复杂得多。我试图简化它如上所述,但显然没有相当的工作,我不知道如何解释完整的问题:(谢谢你的答案
答案 0 :(得分:3)
当你检查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");
}
}
}
答案 1 :(得分:0)
试试这个:
public class EnumProvider
{
public enum ePriceType{
Fixed = 1,
Variable = 2
}
var a = Enum.GetName(typeof(EnumProvider.ePriceType), 1);
这里将是“固定”