例如,我在C#中声明了以下enum
。
C#代码:
public enum LobMaster :int
{
RetailBroking = 1,
HNI = 2,
TechnologyInfrastructure = 3,
}
cshtml代码:
@int code = 2
@if (LobMaster.RetailBroking == code)
{
}
如果我尝试将int enum与整数值进行比较,则会给出以下错误消息。
运营商' =='不能应用于类型' LobMaster'和' int'
虽然我的枚举
LobMaster
已经是一个int类型。
但是当我将枚举转换为int然后与int值进行比较时,它工作正常。 所以我的问题是为什么我需要将枚举转换为int,因为枚举已经是一个int。
答案 0 :(得分:5)
Enums的主要目的是删除“魔法数字”,所以你应该问问自己 - 你为什么要使用那些神奇的数字?
更好的比较是:
Session["Lob_code"] is LobMaster && LobMaster.MassAffluent == (LobMaster)Session["Lob_code"]
这样你就可以避免那些神奇的数字,你的代码只提供了所有的上下文。
答案 1 :(得分:0)
@if ((int) LobMaster.MassAffluent == Convert.ToInt32(Session["Lob_code"])) { }
你应该能够施放左手值,然后进行比较