“为什么?”;“枚举”;未能编译时";“枚举”;在c#NET中成功?

“为什么?”;“枚举”;未能编译时";“枚举”;在c#NET中成功?,c#,visual-studio-2015,compiler-errors,syntax-error,alias,C#,Visual Studio 2015,Compiler Errors,Syntax Error,Alias,为什么将enum更改为Enum会导致编译错误 通常在c#中,可以使用c#类型或其.NET等效类型 例如: string jeff = "Atwood"; // string type String name = "Jeff"; // System.String “” " 字符串类型表示零个或多个Unicode字符的序列。 string是.NET Framework中string的别名。” 以下.NET控制台应用程序成功运行“enum”: 输出: Nothing Something Pr

为什么将enum更改为Enum会导致编译错误

通常在c#中,可以使用c#类型或其.NET等效类型

例如:

string jeff = "Atwood";  // string type
String name = "Jeff";    // System.String
“”
" 字符串类型表示零个或多个Unicode字符的序列。
string是.NET Framework中string的别名。”

以下.NET控制台应用程序成功运行“enum”:

输出:

Nothing
Something
Press ENTER to Exit
但是,将“enum”更改为“Enum”会导致多个错误:

    Enum FirstEnum { Nothing = 0, Something = 666 };
错误:

'invalid-global-code.FirstEnum':
    property or indexer must have at least one accessor
请解释一下

MSDN参考资料:
“”

“”

发生这种情况是因为stringstring的别名,但enumenum不同:

using System;

namespace UnhappyWithSystemEnum
{
    enum FirstEnum { Nothing = 0, Something = 666 };

    class CapitalE
    {
        static void Main(string[] args)
        {
            Console.WriteLine(FirstEnum.Nothing);
            Console.WriteLine(FirstEnum.Something);
            Console.WriteLine("Press ENTER to Exit");
            Console.ReadLine();
        }
    }
}
enum关键字定义了从System.enum继承的新类型,其成员为静态字段

enum MyEnum
{
    Member
}
相当于(我认为它实际上是实际生成的CIL):

如果改用枚举

Enum MyEnum
{
     Member
}
我想:

StringBuilder MyEnum
{
    Member
}

这对编译器来说显然毫无意义。

发生这种情况是因为stringstring的别名,但是enumenum不同:

using System;

namespace UnhappyWithSystemEnum
{
    enum FirstEnum { Nothing = 0, Something = 666 };

    class CapitalE
    {
        static void Main(string[] args)
        {
            Console.WriteLine(FirstEnum.Nothing);
            Console.WriteLine(FirstEnum.Something);
            Console.WriteLine("Press ENTER to Exit");
            Console.ReadLine();
        }
    }
}
enum关键字定义了从System.enum继承的新类型,其成员为静态字段

enum MyEnum
{
    Member
}
相当于(我认为它实际上是实际生成的CIL):

如果改用枚举

Enum MyEnum
{
     Member
}
我想:

StringBuilder MyEnum
{
    Member
}

这显然对编译器没有意义。

enum
不是
System.enum的别名。
就像
string
System.string
的别名一样。它更像是用来声明委托类型的
delegate
,但也有
System.delegate
。关键字不一定是类型名称的别名。
enum
不是
System.enum的别名。
string
System.string
的别名。它更像是用来声明委托类型的
delegate
,但也有
System.delegate
。关键字不一定是类型名称的别名。它更像是
public const MyEnum成员
@PetSerAl大致上是的,但我认为,除非您另外指定,否则它是:
public const int Member
,因为您可以将enum作为整数进行赋值/读取。事实上,我马上就要看一看CIL代码了。它更像是
public const MyEnum Member
@PetSerAl大致上是的,但我认为,除非您另外指定,否则它是:
public const int Member
,因为您可以将enum作为整数进行赋值/读取。我马上就要看CIL代码了。