在组件库的代码审查中,我找到了语法,其中需要每月几天的计算。
简化语法类似于:
int preDays = (new int[] { 0, 1, 2, 3, 4, 5, 6 })[3] - 2;
[3]
和-2
是变量。在上面的示例中,preDays
的结果为1。
有人可以解释我们是如何得出这个结果的吗?
答案 0 :(得分:1)
你正在创建一个数组,在同一行进行算术计算并给出
c#has a zero as base
中的索引,所以如果算上0,1,2,3
,你会在数组的4个案例中得到一个值3 3 minus 2
,你会得到1
所以就这样吧
var myArray = new int[] { 0, 1, 2, 3, 4, 5, 6 };
int myValue = array[3]; //3
int preDays = value - 2;
答案 1 :(得分:1)
这有用吗:
var array = new int[] { 0, 1, 2, 3, 4, 5, 6 };
int value = array[3]; //3
int preDays = value - 2; //1
答案 2 :(得分:1)
将代码细分为各自的部分。就像在数学中一样,我们首先在括号内执行操作,因此您要创建一个值为0到6的整数数组。接下来,代码查看索引3(C#中的数组是基于0的)。索引3处的值为3.最后,我们从3中减去2得到1并将其分配给preDays。
你可以这样想:
int[] myArray = { 0, 1, 2, 3, 4, 5, 6};
int myValue = myArray[3]; // Value is 3
int preDays = myValue - 2; // Value is 1
答案 3 :(得分:1)
在我看来,这个很容易:
在()中定义了一个新的匿名数组。一个由七个元素组成的数组,分别为0,1,2,3,4,5和6.从这个数组中取出第4个元素。 ([3]指的是第四个元素,因为计数从[0]开始,指的是第一个元素。)
数组的第四个元素是3,因此表达式(new int[] { 0, 1, 2, 3, 4, 5, 6 })[3]
解析为3.从3减去2使得preDays用1填充。
答案 4 :(得分:1)
在int preDays = (new int[] { 0, 1, 2, 3, 4, 5, 6 })[3] - 2;
(new int[] { 0, 1, 2, 3, 4, 5, 6 })
将创建大小为7且值为(0,1,2,3,4,5,6)的临时整数数组。
(new int[] { 0, 1, 2, 3, 4, 5, 6 })[3]
将提取第4项(索引为3的项目),即值3。
(new int[] { 0, 1, 2, 3, 4, 5, 6 })[3] - 2
将执行3 - 2 = 1。