是否可以在不进行演员表的情况下进行枚举?
class Program
{
private enum Subject
{
History = 100, Math =200, Geography = 300
}
static void Main(string[] args)
{
Console.WriteLine(addSubject((int) Subject.History)); //Is the int cast required.
}
private static int addSubject(int H)
{
return H + 200;
}
}
答案 0 :(得分:2)
我会尝试一下业务逻辑应该是什么:
class Program
{
[Flags] // <--
private enum Subject
{
History = 1, Math = 2, Geography = 4 // <-- Powers of 2
}
static void Main(string[] args)
{
Console.WriteLine(addSubject(Subject.History));
}
private static Subject addSubject(Subject H)
{
return H | Subject.Math;
}
}
答案 1 :(得分:1)
不,因为那样你就会失去类型安全性(这是C ++枚举的问题)。
枚举类型是实际类型而不仅仅是命名整数是有益的。相信我,不得不偶尔施放一次并不是问题。但是在你的情况下,我认为你根本不想使用枚举。看起来你真的在追求值,所以为什么不用公共常量创建一个类呢?
顺便说一句,这让我感到畏缩:private static int addSubject(int H)
{
return H + 200;
}