我有一个简单的枚举:
public enum Status
{
sad,
happy
};
protected Status status;
我已成功将其值绑定到组合框:
cmbStatus.DataSource = Enum.GetValues(typeof(StatusClass.Status));
我现在希望可以检索组合框的所选项/值/索引.但我遇到了麻烦.我已经尝试封装枚举,然后检索它的值,如下所示:
public Status StatusType
{
get { return status; }
set { stats = value; }
}
person.StatusType = cmbStatus.SelectedItem.ToString();
这给了我这个错误:“不能隐式地将类型’string’转换为StatusClass.Status.Status’.
我已经尝试将枚举名称(例如’sad’和’happy’作为文本而不是其值)这样(但我不确定如何封装它,也不确定它是否正常工作):
string statusType = Enum.GetName(typeof(Status), status);
如果我可以封装这个,也许我会解决我的问题.我在这一点上很难过;我是新手.任何帮助都真诚地感谢.这里希望这一切都有意义,并提供足够的信息.谢谢.
解决方法:
您可以解析该值:
Status status = (Status)Enum.Parse(typeof(Status), "sad");
或(C#7):
Enum.TryParse<Status>("sad", true, out Status status);
// Or: Enum.TryParse<Status>("sad", true, out var status);
// Use "status variable" further