回答
您不能在標識符名稱中使用.
。
見C# Specification on Identifiers
你能做的最好的會是這樣的:
enum value
{
V1dot0,
V2dot0,
V3dot0
}
或
enum value
{
V10,
V20,
V30
}
或
enum value
{
V1_0,
V2_0,
V3_0
}
或使用Description
像Koen建議的屬性。
或下劃線; D – JonE
+1下劃線在C#中是邪惡的,個人偏好! –
一個可能的解決辦法是使用DescriptionAttribute的:
enum value
{
[Description("V1.0")]
V1_0,
[Description("V2.0")]
V2_0,
[Description("V3.0")]
V3_0
}
你必須聲明你的枚舉沒有點例如
public enum value {
V1,
V2,
V3
}
,但你可以實現擴展方法表示枚舉值:
public static class valueExtensions {
public static String ToReport(this value item) {
switch (item) {
case value.V1:
return "V1.0";
case value.V2:
return "V2.0";
case value.V3:
return "V3.0";
default:
return "?";
}
}
}
...
value data = value.V1;
String result = data.ToReport(); // <- "V1.0"
我知道要做到這一點,唯一的解決方法是通過描述,如描述here
寫一個靜態方法來顯示它,或者將它封裝到類中並覆蓋ToString方法。
ToString(enumValue eValue){
switch (eValue) {
case V10:
return "V1.0";
break;
case V20:
return "V2.0";
break;
}
}
你也可以使用readonly
陣列:
public readonly string[] value={"V1.0","V2.0","V3.0"};
readonly數組不是不可變的,就像枚舉一樣,readonly只會阻止您重新分配字段值,但仍可以更改數組的內容。此外,你真的不應該公開 - 這是屬性的用途。 – Jay
可能是字典,而不是數組,更好的解決方案在這裏:{{「V1.0」,1},{「V2.0」,2},{「V3.0」,3}} –
您不能分配字符串值,以枚舉但是你可以使用分配屬性。你得數值與描述
using System.ComponentModel;
namespace myCompany.MyProject.BO {
public enum SampleTypes
{
// Default
[Description("- None -")]
None=0,
[Description("My type 1")]
V1=1,
[Description("My type 2")]
V2=2,
[Description("My type 3")]
V3=3
} }
然後你就可以定義輔助方法來獲得任何說明或鍵,值對綁定到一個下拉列表
public static string GetDescription(System.Enum value)
{
FieldInfo FieldInfo = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes = (DescriptionAttribute[])FieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
if ((attributes.Length > 0))
return attributes[0].Description;
else
return value.ToString();
}
public static List<KeyValuePair<string, string>> GetValuesAndDescription(System.Type enumType)
{
List<KeyValuePair<string, string>> kvPairList = new List<KeyValuePair<string, string>>();
foreach (System.Enum enumValue in System.Enum.GetValues(enumType))
{
kvPairList.Add(new KeyValuePair<string, string>(enumValue.ToString(), GetDescription(enumValue)));
}
return kvPairList;
}
可以綁定關聯您dropdownlists這樣
Helpers.GetValuesAndDescription(typeof(YourEnumName));
YourDropDown.DataValueField = "Key";
YourDropDown.DataTextField = "Value";
YourDropDown.DataBind();`
- 1. 特殊字符添加日期枚舉
- 2. 如何顯示特殊字符和curvearrowleft;
- 3. 具有特殊字符的枚舉:如何?
- 4. java - 如何在枚舉中添加特殊字符?
- 5. 如何使用帶有特殊字符的ApolloStack/GraphQL創建枚舉變量?
- 6. 使用System.out.println顯示特殊字符
- 7. 如何顯示HTML特殊字符
- 8. PHP顯示特殊字符
- 9. 顯示有特殊字符
- 10. 顯示特殊字符
- 11. 如何區分Silverlight v2.0和v3.0程序集
- 12. 如何使用AngularJs顯示枚舉值
- 13. 字符串枚舉類有限制的價值觀和特殊字符
- 14. 特殊成員枚舉:全部和無
- 15. 特殊字符多餘的字符顯示出來之前
- 16. 字符集特殊字符
- 17. jqGrid顯示枚舉爲字符串
- 18. 如何在Linux上使用ncurses顯示特殊字符?
- 19. 如何使用android studio顯示特殊字符
- 20. 顯示文字,枚舉
- 21. 用戶郵件顯示特殊字符
- 22. 使用枚舉集
- 23. 如何用Java特殊字符表示
- 24. 的iOS:如何顯示特殊字符斯威夫特[的NSString]
- 25. 如何爲枚舉顯示不同的字符串Angular 4 typecript
- 26. 如何使顯示CKEditor中的特殊字符成爲可能
- 27. 枚舉特殊字符(德國元音)恆定
- 28. 將特殊字符作爲枚舉值存儲在Rails 5中
- 29. 無符號的字符來枚舉
- 30. rails-顯示來自文本字段的特殊字符數
你是什麼意思顯示做? – Grzenio
你不能使用點,而是嘗試下劃線。如果你需要得到一個友好的描述,[檢查出來](http://stackoverflow.com/questions/2650080/how-to-get-c-sharp-enum-description-from-value) – musefan