底层类型的确相同,但是编译器依赖于该类型作为确切的别名。这是基于解析的编译错误。我看了一下C#语法规范,并在其中定义了基于别名的基础类型(如’int’,’unit’…等)作为标记。解析器期望
整数类型 语法规则中的特定字符串。
*即使两者的enum Enum : int
含义相同, *该错误也是解析错误
enum Enum : Int32。
我不知道强制执行此限制以进行解析步骤的原因,但我可以尝试猜测:由于Int32不是关键字,因此它可能引用了其他实际的int结构。如果解析器必须知道类型以便为每种基本类型构建不同的AST,则它不能依赖不是关键字的令牌。
即使C#规范将 int 关键字定义为显式别名 System.Int32
,在解析步骤期间获取有关显式类型(Int32)的信息仍然是一个问题,因为它需要很多上下文信息,而在此步骤中无法推断出这些信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)