Dan*_*Ash 3 c# arrays indexing compilation
好吧,我在一些同事刚刚开始支持的代码中遇到了这个问题.我从来没有做过这样的事情但不会,但我很惊讶编译器没有将它标记为错误.
基本上你可以看到这个小片段的"奇怪"行为:
array[3/4] = 3;
这是允许的,即使3/4,我认为,将返回双倍.如果您将其更改为:
array[3.0/4] = 3;
您确实收到编译器错误.
我假设第一个没有创建编译器错误,因为它执行整数除法并返回一个整数.
是的,如果两个部分都是整数 - 编译器执行整数除法.你得到
3 / 4 = 0
Run Code Online (Sandbox Code Playgroud)
当您尝试将double除以整数时 - 您将获得double结果,这不是数组的有效索引.