如何在c#应用程序中将2个值关联到单个enum
类型值?
例如,我有enum
这样的类型:
public enum person
{
soccerPlayer,
tennisPlayer,
athlete,
coach
}
足球运动员和网球运动员都是运动员,但教练不是运动员。
如果我是一个人,就像这样:
person p = person.soccerPlayer;
我该如何进行此测试?
if (p == person.athlete)
答案 0 :(得分:2)
在这种特殊情况下,通过功能检查以查看enum
值是否为运动员,您可以获得更好的服务
static bool IsAthlete(person p) {
switch (p) {
case person.soccerPlayer:
case person.tennisPlayer:
case person.athlete:
return true;
default:
return false;
}
}
总的来说,虽然我不相信enum
类型对你很好。 enum
通常用于表示互斥值(可以是A或B但不是两者)或用于位标志情况。你可以操纵位标志在这里工作,但我觉得这不是最好的方法。
这种情况似乎更适合完全成熟的类型。
class Person {
public bool IsAthlete { get; private set; }
public bool IsSoccerPlayer { get; private set; }
public bool IsTennisPlayer { get; private set; }
public static readonly TennisPlayer = new Person {
IsTennisPlayer = true,
IsAthelete = true
}
public static readonly SoccerPlayer = new Person {
IsSoccerPlayer = true,
IsAthelete = true
}
}