从现有枚举创建新枚举
本文关键字:枚举 新枚举 创建 | 更新日期: 2023-09-27 18:27:21
我有一个现有的枚举
public enum BalanceType // existing enum
{
Available,
Phone,
Commissary,
Account,
Reserve,
Encumber,
Debt,
Held,
}
现在我想从中创建一个新的枚举。新的枚举只包含两个字段。
public class IvrBalanceInfo
{
public decimal Amount { get; set; }
public IvrBalanceType Type { get; set; }
public IvrBalanceInfo(BalanceInfo info, BalanceType type)
{
Amount = info.Amount;
//How to create the enum IvrBalanceType?
}
public enum IvrBalanceType // new enum
{
Available,
Phone,
}
}
我的问题是如何快速绘制地图?我的意思是把旧的换成新的。旧的是第三方的。元素太多了。我只需要两个。
public class IvrBalanceInfo
{
public decimal Amount { get; set; }
public IvrBalanceType Type { get; set; }
public IvrBalanceInfo(BalanceInfo info, BalanceType type)
{
Amount = info.Amount;
if (type == BalanceType.Available)
Type = IvrBalanceType.Available;
else if(type == BalanceType.Phone)
Type = IvrBalanceType.Phone
// here you have to handle the other values and set the default
// values for the Type Property or it will take the default value
// if you not set it
}
public enum IvrBalanceType // new enum
{
Available,
Phone,
}
}
另一个解决方案的问题是,如果type
参数的值不是BalanceType.Available
、BalanceType.Phone
的值之一,则会引发异常
您可以尝试以下操作:
public class IvrBalanceInfo
{
public decimal Amount { get; set; }
public IvrBalanceType Type { get; set; }
public IvrBalanceInfo(BalanceInfo info, BalanceType type)
{
Amount = info.Amount;
Type = (IvrBalanceType)(int)type;
}
public enum IvrBalanceType // new enum
{
Available,
Phone,
}
}
我认为您应该检查值,或者为其他值获取一些默认值。
只是确保了它的编译,没有时间检查它是如何工作的。