在创建枚举
之前,我从未使用枚举我想在C#中创建一个类似
的枚举enum e{10:30 a.m.,10:31 a.m.,10:32 a.m.}
但它说预期的标识符..你可以帮助我创建它。
答案 0 :(得分:6)
当然可以添加属性:
enum e
{
[Description("10:30 a.m.")]
AM1030,
[Description("10:31 a.m.")]
AM1031,
[Description("10:32 a.m.")]
AM1032,
}
var type = e.GetType();
var memInfo = type.GetMember(e.AM1030.ToString());
var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
var description = ((DescriptionAttribute)attributes[0]).Description;
答案 1 :(得分:3)
你可以做到
enum e
{
time1,
time2,
time3,
}
您不能将像上午10.30这样的值作为枚举类型。
答案 2 :(得分:3)
我建议查看DateTime:http://msdn.microsoft.com/en-us/library/system.datetime.aspx
为一天中可能的时间创建枚举将容易导致代码腐烂,因为每次想要支持一天中的不同时刻时,您将不得不更改该枚举。
但是,如果您的业务逻辑真的特定于这三分钟,那么您想要的是:
enum Minute
{
TenThirty,
TenThirtyOne,
TenThirtyTwo
}
enum只接受标识符,它们必须是一个没有空格的单个单词。
答案 3 :(得分:2)
在您的情况下,一个选项不是使用枚举,而是这样:
public static class Times {
public static DateTime AM1030 = new DateTime(1,1,0,10,30);
public static DateTime AM1031 = new DateTime(1,1,0,10,31);
public static DateTime AM1032 = new DateTime(1,1,0,10,32);
}
var time = Times.AM1030;
事实是,它并没有给你任何价值,因为无论如何你都在硬编码。最好的是给它一个商业概念,将那些日期命名为某事(我的意思是,用一个词)。
答案 4 :(得分:-2)
首先,枚举必须在Class级别声明。这意味着它们不能位于包含您的类的括号内。
不正确:
public class {
enum myEnum {...}
}
正确:
enum myEnum {...}
public class {
...
}
第二:你不能只是写在那里并希望它能够发挥作用。看起来你正试图增加时间。你必须使用datetime对象。或者是一个字符串,如果你计划在每次阅读它时进行分析。
以下是将动物名称与数字相关联的枚举示例:
public enum Pets { None=0, Dog=1, Cat=2, Bird=4, Rodent=8, Reptile=16, Other=32 };
希望这有帮助。