【发布时间】:2020-06-10 14:42:41
【问题描述】:
我想比较一些关于 ifs 语句的枚举,这就是我的意思,但这不起作用。基本上我想看看受伤是否与枚举相同,因此如果受伤流血,则需要包扎等。如果您需要任何其他信息,请告诉我。
static string injuries = GetInjuriesName(GetInjuries(closestPlayer));
EPedInjuries result;
if (Enum.TryParse(injuries, out result) && result == EPedInjuries.Overdose)
{
.....
}
else if (Enum.TryParse(injuries, out result) && result == EPedInjuries.GunShotWound)
{
....
}
....
public enum EPedInjuries
{
OpenFracture,
GunShotWound,
Fever,
BrokenLeg,
BrokenArm,
BrokenRib,
Overdose,
.....
}
public static EPedInjuries GetInjuries(Ped ped)
{
Ped = ped;
int num = API.Common.Random.Next(0, 101);
if (num >= 0 && num <= 37)
{
return EPedInjuries.Overdose;
}
if (num > 37 && num <= 55)
{
return EPedInjuries.GunShotWound;
}
if (num > 55 && num <= 72)
{
return EPedInjuries.CardiacArrest;
}
....
}
public static string GetInjuriesName(EPedInjuries injuries)
{
string result = string.Empty;
switch (injuries)
{
case EPedInjuries.Overdose:
result = "~r~Overdose";
break;
case EPedInjuries.GunShotWound:
result = "~r~Gunshot Wound";
break;
case EPedInjuries.CardiacArrest:
result = "~r~Cardiac Arrest";
break;
....
}
return result;
}
【问题讨论】:
-
似乎很奇怪将伤害转换为字符串只是将其转换回伤害。
-
为什么不只使用
GetInjuries方法并与从它返回的值进行比较? -
@Borka 我该怎么做?使用 TryParse 方法?
-
@JohnnyMopp 我的意思是比较不起作用。不知道我还应该包括什么。
标签: c# if-statement enums compare