见下面的枚举包含两个成员:测试和制作
public enum OTA_HotelInvCountNotifRQTarget
{
Test,
Production,
}
我正在寻找在上面的枚举中添加和使用Null值的方法,例如:
inv.Target = OTA_HotelInvCountNotifRQTarget.Null; // Not allowed
更新
我不想在上面的枚举中添加额外的NULL
,我想让它变得动态,因为上面的枚举是自动生成的。并且应保持不变。
有没有办法在方法本身中实现这一点,即不在枚举中创建任何Class
或添加额外的Enum
值?
喜欢:inv.Target = OTA_HotelInvCountNotifRQTarget.Null;
我该怎么做?
答案 0 :(得分:3)
enum
的下划线值为int
,无法分配给null
。
如果您仍想这样做:
将Null
添加为枚举选项:
public enum OTA_HotelInvCountNotifRQTarget
{
Null,
Test,
Production
}
让你的目标成为Nullable类型:
Nullable<OTA_HotelInvCountNotifRQTarget> t = null;
//Or in a cleaner way:
OTA_HotelInvCountNotifRQTarget? t = null;
//And in your class:
public class YourType
{
public OTA_HotelInvCountNotifRQTarget? Target { get; set; }
}
答案 1 :(得分:0)
public enum OTA_HotelInvCountNotifRQTarget
{
Null,
Test,
Production
}
也在这里回答 How to set enum to null
答案 2 :(得分:0)
Enum
是enum
。它值类型,你可以使用
Nullable<OTA_HotelInvCountNotifRQTarget>
或OTA_HotelInvCountNotifRQTarget?
表示“未设置声明”
但如果您仍希望用户null
为enum
值,请尝试
public enum OTA_HotelInvCountNotifRQTarget
{
Null,
Test,
Production
}
答案 3 :(得分:0)
或使用“?”变量的运算符:
public OTA_HotelInvCountNotifRQTarget? Target;
您必须将作业更改为:
inv.Target = null;