“为什么?”;“枚举”;未能编译时";“枚举”;在c#NET中成功?
为什么将enum更改为Enum会导致编译错误 通常在c#中,可以使用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
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参考资料:“”
“”发生这种情况是因为string是string的别名,但enum与enum不同:
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
}
这对编译器来说显然毫无意义。发生这种情况是因为string是string的别名,但是enum与enum不同:
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代码了。