Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#数组索引类型检查_C#_Arrays_Indexing_Compilation - Fatal编程技术网

c#数组索引类型检查

c#数组索引类型检查,c#,arrays,indexing,compilation,C#,Arrays,Indexing,Compilation,好吧,我在一个同事刚刚开始支持的代码中遇到了这个问题。我从来没有做过这样的事情,也不会做,但我很惊讶编译器没有将其标记为错误 基本上,您可以通过这个小片段看到“奇怪”的行为: 数组[3/4]=3 这是允许的,即使3/4,我想,会返回一个双。 如果将其更改为: 数组[3.0/4]=3 您确实会遇到编译器错误 我假设第一部分不会创建编译器错误,因为它进行整数除法并返回整数。是的,如果两部分都是整数,编译器将执行整数除法。 你得到 当您尝试将double除以整数时,会得到一个double结果,该结果不

好吧,我在一个同事刚刚开始支持的代码中遇到了这个问题。我从来没有做过这样的事情,也不会做,但我很惊讶编译器没有将其标记为错误

基本上,您可以通过这个小片段看到“奇怪”的行为:

数组[3/4]=3

这是允许的,即使3/4,我想,会返回一个双。 如果将其更改为:

数组[3.0/4]=3

您确实会遇到编译器错误


我假设第一部分不会创建编译器错误,因为它进行整数除法并返回整数。

是的,如果两部分都是整数,编译器将执行整数除法。 你得到


当您尝试将double除以整数时,会得到一个double结果,该结果不是数组的有效索引。

您可以很容易地使用此
(3/4).GetType()
,它将是
System.Int32
。希望您更改此代码。(我假设原始代码使用的是变量,而不是硬编码的3/4。)这是错误的邀请。我希望我能取消它。原来的代码实际上是这个数组[variable*3/4],它做了需要做的事情,但我不喜欢它,我自己也不会这样编码。
3 / 4 = 0