C# 在C“-”中创建枚举时出错;“需要标识符”;

C# 在C“-”中创建枚举时出错;“需要标识符”;,c#,enums,C#,Enums,在创建枚举时遇到问题之前,我从未使用过枚举 我想在C#中创建一个枚举,类似于 enum e{10:30 a.m.,10:31 a.m.,10:32 a.m.} 但是上面说我希望。。你能帮我创建它吗。你可以这样做 enum e { time1, time2, time3, } 您不能将10.30 a.m.这样的值作为枚举类型。一个选项是在您的情况下不使用枚举,而是类似以下内容: public static class Tim

在创建枚举时遇到问题之前,我从未使用过枚举

我想在C#中创建一个枚举,类似于

enum e{10:30 a.m.,10:31 a.m.,10:32 a.m.}
但是上面说我希望。。你能帮我创建它吗。

你可以这样做

    enum e
    {
       time1,
       time2,
       time3, 
    } 

您不能将10.30 a.m.这样的值作为枚举类型。

一个选项是在您的情况下不使用枚举,而是类似以下内容:

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;

事实上,它没有给你任何价值,因为你无论如何都在硬编码这些价值。最好是给它一个业务概念,将这些日期命名为某物(我的意思是,用一个词)。

首先,枚举必须在类级别声明。这意味着它们不能在类的括号内

不正确:

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 };

希望这有帮助。

我建议查看DateTime:

为一天中可能出现的时间创建枚举很容易导致代码崩溃,因为每次需要支持一天中不同的时间时,都必须更改该枚举

但是,如果您的业务逻辑确实针对这三分钟,那么您需要的是:

    enum Minute
    {
        TenThirty,
        TenThirtyOne,
        TenThirtyTwo
    }

枚举只接受标识符,它们必须是一个没有空格的单词

确实可以添加属性:

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;

您想使用枚举做什么?您没有正确定义枚举。请参见此处枚举的ms定义。。。问题是
上午10:30。
不是标识符。使用例如
Time\u 10\u 30\u am
。实际上,您不能将“10:30am”这样的值作为标识符—即方法名、变量名、类名,什么都不能。正如对该问题的评论所说:是时候阅读“C#for absolute初学者”或类似的书籍了。您可以使用任何整数类型作为枚举标识符的值,但它们必须都是相同的类型。。。因为枚举本身实际上就是这种类型。您可以将上午10:30作为枚举的值,但您必须执行一些疯狂的操作,例如将上午10:30转换为int并将其用作值。。。闻起来像是代码的味道嗯不…枚举可以在一个类中。@MyKuLLSKI我测试过它,结果证明你可以。我认为我的错误来自于这样一个事实:我被教导永远不要在类中实际放置枚举。我们的教授总是说它们不属于一个类,应该在名称空间范围内。@ivowiblo现在不打算修复它,太迟了。不妨保持现状,以警告其他做出同样假设的人。@MyKuLLSKI真的从来没有遇到过任何麻烦。只要将所有枚举放在名称空间范围内,它们就可以正常工作。正如我现在看到的,作为一个程序员,你可以选择这样做。我还没有经历过它的任何缺点。+1对于Description属性的使用,更进一步,向enums添加一个扩展方法,以便更容易获得描述,例如enum.GetDescription()是的,但是为什么要给出我所有的实用工具包装:)因为共享是关心的!:-)