tra*_*vis 7 .net vb.net string int integer
例如:
(1).SomeFunction().Equals("one")
(2).SomeFunction().Equals("two")
Run Code Online (Sandbox Code Playgroud)
在我正在使用的情况下,我真的只需要数字1-9,我应该只使用一个开关/选择案例吗?
更新我也不需要本地化.
更新2这是我最终使用的内容:
Private Enum EnglishDigit As Integer
zero
one
two
three
four
five
six
seven
eight
nine
End Enum
(CType(someIntThatIsLessThanTen, EnglishDigit)).ToString()
Run Code Online (Sandbox Code Playgroud)
Ric*_*ett 11
枚举怎么样?
enum Number
{
One = 1, // default value for first enum element is 0, so we set = 1 here
Two,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
}
Run Code Online (Sandbox Code Playgroud)
然后你可以输入像...这样的东西
((Number)1).ToString()
Run Code Online (Sandbox Code Playgroud)
如果您需要本地化,则可DescriptionAttribute
以为每个枚举值添加一个.属性的Description
属性将存储资源项的密钥的名称.
enum Number
{
[Description("NumberName_1")]
One = 1, // default value for first enum element is 0, so we set = 1 here
[Description("NumberName_2")]
Two,
// and so on...
}
Run Code Online (Sandbox Code Playgroud)
以下函数将从Description
属性中获取属性的值
public static string GetDescription(object value)
{
DescriptionAttribute[] attributes = null;
System.Reflection.FieldInfo fi = value.GetType().GetField(value.ToString());
if (fi != null)
{
attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
}
string description = null;
if ((attributes != null) && (attributes.Length > 0))
{
description = attributes[0].Description;
}
return description;
}
Run Code Online (Sandbox Code Playgroud)
这可以通过以下方式调用:
GetDescription(((Number)1))
Run Code Online (Sandbox Code Playgroud)
然后,您可以从资源文件中提取相关值,或者只返回调用.ToString()
if null
.
各种评论者指出(我必须同意)只使用枚举值名称来引用本地化字符串会更简单.
归档时间: |
|
查看次数: |
333 次 |
最近记录: |