gpt4 book ai didi

c# - 为什么在c#.NET中 "Enum"编译成功, "enum"编译失败?

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:38 29 4
gpt4 key购买 nike

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

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

例子:

string jeff = "Atwood";  // string type
String name = "Jeff"; // System.String

"string (C# Reference) "
string 类型表示零个或多个 Unicode 字符的序列。
string 是 .NET Framework 中 String 的别名。”

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

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

输出:

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 引用资料:
Enum Class
"enum (C# Reference) "

最佳答案

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

enum 关键字定义了一个新类型,该类型继承自 System.Enum,其成员为静态字段。

enum MyEnum
{
Member
}

相当于(我认为它实际上是真正生成的 CIL):

public class MyEnum : System.Enum
{
public static int Member;
}

如果您改用 Enum:

Enum MyEnum
{
Member
}

会像:

StringBuilder MyEnum
{
Member
}

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

关于c# - 为什么在c#.NET中 "Enum"编译成功, "enum"编译失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406441/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com