C#:枚举值可以保存为设置吗?

Dav*_*man 9 c# settings enums

可以enum使用Properties.Settings.Default["MySetting"]C#的语法将值保存为设置吗?我尝试在项目的属性页面中创建一个设置,但只有系统类出现在可用类型列表中.

如果可以,我该怎么办?在此先感谢您的帮助.

Ed *_* S. 15

只需将其存储为int并在需要时将其转换.

Properties.Settings.Default["MySetting"] = myEnumValue;

// and later 
var settingValue = Properties.Settings.Default["MySetting"];
MyEnum value = (MyEnum)settingValue;
Run Code Online (Sandbox Code Playgroud)

如果您觉得有必要,可以使用Enum.IsDefined(typeof(MyEnum), value)它来确保它有效.您还可以存储字符串值,以便在配置文件中使用人类可读的格式:

Properties.Settings.Default["MySetting"] = myEnumValue.ToString();

// and later 
var settingValue = Properties.Settings.Default["MySetting"];
MyEnum value = (MyEnum)Enum.Parse( typeof(MyEnum), settingValue );
Run Code Online (Sandbox Code Playgroud)

  • 或者存储一个`string`,然后使用`Enum.TryParse`.这种方式更具人性化. (5认同)