首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取.NET枚举的Windows本地化

获取.NET枚举的Windows本地化
EN

Stack Overflow用户
提问于 2014-05-27 16:47:33
回答 1查看 183关注 0票数 1

有可能获得.NET枚举的Windows本地化吗?例如,我希望获得System.IO.Ports.Parity值的转换。

下面是System.IO.Ports.Parity:

代码语言:javascript
复制
public enum Parity
{
    None = 0,
    Odd = 1,
    Even = 2,
    Mark = 3,
    Space = 4,
}

Windows在COM-port属性窗口中将它们显示为{“Чет”,“Нечет”,“Нет”,“Маркер”,“Пробел”}(我使用的是俄语版本的Windows8)。

问题是,我不想硬编码这些“翻译”。我想根据当前的文化自动获取它们。

EN

回答 1

Stack Overflow用户

发布于 2014-05-27 17:56:55

不,枚举没有本地化。

枚举的全部意义在于,您可以使用描述性名称而不是值,因此如果要将值设置为Mark而不是3,则可以更轻松地进行编码

然后,当您比较这些值时,您不必记住3代表Mark

您不应该向用户显示EnumValue.ToString(),但是您可以创建自己的名为strings的资源文件,使用适当的值添加一个名为Mark的资源,然后像这样查找该值:

代码语言:javascript
复制
ResourceManager rm = strings.ResourceManager;
Debug.WriteLine(rm.GetString(System.IO.Ports.Parity.Mark.ToString()));

有关详细信息,请参阅How to use localization in C#Getting a string dynamically from strings resources

但这确实涉及到你创建所有翻译的一些临时工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23884874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档