为什么枚举声明接受短暂而不是Int16的 [英] Why does enum declaration accept short but not Int16

查看:123
本文介绍了为什么枚举声明接受短暂而不是Int16的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要宣布一个新的枚举与非默认的基本类型。这工作:

I want to declare a new enum with non-default underlying type. This works:

public enum MyEnum : short
{ A, B, C, }

但我不明白为什么这不能编译:

But I don't understand the reason why this doesn't compile:

public enum MyEnum : System.Int16
{ A, B, C, }

编译器说:

类型字节,为sbyte,总之,USHORT,INT,   UINT,长或ulong预期

Type byte, sbyte, short, ushort, int, uint, long, or ulong expected

据我所知,总之是所有的.NET版本(32/64位口味在内)的别名Int16的。我不明白为什么编译器给出了不同的含义,在特定情况下的别名。

I understand that short is an alias for Int16 on all .NET versions (32/64 bit flavors included). I don't see why the compiler gives a different meaning to the alias in that particular case.

任何解释?

推荐答案

的语法是正确的。 C#规范明确指出,枚举的基础类型必须是字节,为sbyte,总之,USHORT,INT,UINT,长或ulong的。

The syntax is correct. C# specification explicitly states that the enum's underlying type must be byte, sbyte, short, ushort, int, uint, long or ulong.

读什么微软表示,这个这里

Read what Microsoft says about this here.

这篇关于为什么枚举声明接受短暂而不是Int16的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆