是否可以根据所选的枚举项显示MessageBox? E.g:
public enum Messages
{
UserAlreadyExists,
NoUserName,
NoPassword,
NoUserNameOrPassword
}
如果是这样,我如何处理每个项目以显示特定的MessageBox?
答案 0 :(得分:0)
尝试以下方法:
from scipy import mean
list(map(lambda x: mean(StudentGrades[x]), StudentGrades))
答案 1 :(得分:0)
您可以考虑两种替代方法。
显而易见的解决方案:一个简单的switch语句:
var msg = Messages.NoPassword;
switch (msg)
{
case Messages.NoPassword:
MessageBox.Show("No password");
break;
case Messages.NoUserName:
MessageBox.Show("No user name");
break;
case Messages.NoUserNameOrPassword:
MessageBox.Show("No user name");
break;
case Messages.UserAlreadyExists:
MessageBox.Show("User already exists");
break;
}
或者,将[Description] attributes添加到枚举值(假设未在第三方代码中定义枚举):
MessageBox.Show(GetDescription(msg));
您需要this function:
public static string GetDescription(Enum value)
{
FieldInfo field = value.GetType().GetField(value.ToString());
DescriptionAttribute attribute
= Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute))
as DescriptionAttribute;
return attribute == null ? value.ToString() : attribute.Description;
}
并且每个枚举成员都需要进行装饰:
public enum Messages
{
[Description("User already exists")]
UserAlreadyExists,
[Description("No user name")]
NoUserName,
[Description("No password")]
NoPassword,
[Description("No user name")]
NoUserNameOrPassword
}
当然,这些解决方案都没有本地化。