C#int,Int32和枚举

C#int,Int32和枚举,第1张

C#int,Int32和枚举

底层类型的确相同,但是编译器依赖于该类型作为确切的别名。这是基于解析的编译错误。我看了一下C#语法规范,并在其中定义了基于别名的基础类型(如’int’,’unit’…等)作为标记。解析器期望
整数类型 语法规则中的特定字符串。

*即使两者的

enum Enum : int
含义相同, *该错误也是解析错误
enum Enum : Int32

我不知道强制执行此限制以进行解析步骤的原因,但我可以尝试猜测:由于Int32不是关键字,因此它可能引用了其他实际的int结构。如果解析器必须知道类型以便为每种基本类型构建不同的AST,则它不能依赖不是关键字的令牌。

即使C#规范将 int 关键字定义为显式别名 System.Int32
,在解析步骤期间获取有关显式类型(Int32)的信息仍然是一个问题,因为它需要很多上下文信息,而在此步骤中无法推断出这些信息。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5440799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存