使用枚举值

时间:2014-06-14 02:00:44

标签: c# enums

我想在我的网络应用程序中提供一些枚举。我有一个sharedlib类型类,它包含我的所有DTO并被所有层引用,所以我将它放在该项目中。

我创建了一个.cs文件,并添加了一个公共枚举:

namespace Objects
{
    public enum EntityType
    {
        Thirdparty = 1,
        BankAccount = 2
    }
}

我的SQL表中有引用数据:

enter image description here

我希望能够像这样引用我的枚举:

if(EntityTypeId==Objects.EntityType.BankAccount) ...

但是,我无法将Int与Object.EntityType进行比较。

如何实现这一目标并采用一种干净的方式?而不是常数?

1 个答案:

答案 0 :(得分:3)

您可以在枚举值和int值之间进行转换,例如:

EntityType yourEnumValue = (EntityType)yourIntegerValueFromDatabase;

if (yourEnumValue == EntityType.BankAccount) ...

我应该指出,如果整数的值对你的枚举无效,你将会抛出异常。您可以捕获它并处理它(不是首选),或者您可以使用IsDefined方法来测试该值是否有效。

if (Enum.IsDefined(typeof(EntityType), yourIntegerValueFromDatabase))
{
    yourEnumValue = (EntityType)yourIntegerValueFromDatabase;
}
else
{
   // deal with it some other way, perhaps use a default value
}