【发布时间】:2015-11-18 23:49:36
【问题描述】:
所以如果我定义一些常量
const byte MAX_SIZE = 100;
然后用上面的静态大小实例化一个整数数组
int[] myArr = new int[MAX_SIZE];
静态大小是显式强制还是完全可以接受的。
只是好奇,因为我在 VS Visual C# 2013 中没有收到任何警告,或者有什么方法可以让警告更加严格?
【问题讨论】:
-
它是 const 所以编译器在编译时用它的值替换每个 MAX_SIZE。
-
所以不存在强制,byte->int
-
你认为这里被胁迫的究竟是什么?
-
我想知道 [(byte)100] 是否被强制转换为 [(int)100]
-
这是 const 声明
.field private static literal uint8 MAX_SIZE = uint8(100)的IL,所以是的,编译器会将(byte)100转换为(int)100