【问题标题】:Enum variable c#枚举变量 c#
【发布时间】:2017-09-09 11:35:42
【问题描述】:

这是我的枚举:

public enum SomeTest
{
  Undefined = 0,
  Gram = 1,
  Kilogram = 2
}

这是我的测试课:

private SomeTest test;

public Test (SomeTest test)
{
  this.test = test;
}

我想设置为test 我的Settings.Default.Test 可以吗?

asd = new Test(Test)

【问题讨论】:

  • 你的Settings.Default.Test是什么?
  • Properties.Settings.Default.Test => 类型是字符串
  • @TheNewBegining 您希望将string 分配给SomeTest 的行为是什么?它们是不同的类型。

标签: c# enums


【解决方案1】:

由于您的Settings.Default.TestString,因此您可以为此使用Enum.Parse(..)

asd = new Test(<b>Enum.Parse(typeof(SomeTest),</b>Settings.Default.Test<b>)</b>)

当您在csharp 控制台中运行它时:

csharp> public enum SomeTest
      > {
      >   Undefined = 0,
      >   Gram = 1,
      >   Kilogram = 2
      > }
csharp>  
csharp> Enum.Parse(typeof(SomeTest),"Gram")      
Gram

请注意,如果字符串与枚举值不匹配,它将抛出ArgumentException

csharp> Enum.Parse(typeof(SomeTest),"Foo")  
System.ArgumentException: Requested value 'Foo' was not found.

【讨论】:

  • 如果我有一个combobx并设置为test我的combobox的选中项,是不是也这么简单?
  • @TheNewBegining:在这种情况下,您最好将这些值用作枚举作为数据源,例如here
  • @Willem Van Onsem 你能帮我看看我们如何处理这个异常并返回一个默认字符串作为回报。
猜你喜欢
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
  • 2014-09-20
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
相关资源
最近更新 更多