在組件庫的代碼審查中,我發現需要一些每月每天計算的語法。C#操作順序語法解釋
簡化的語法是這樣的:
int preDays = (new int[] { 0, 1, 2, 3, 4, 5, 6 })[3] - 2;
凡[3]
和-2
是變量。在上面的例子中,preDays
的結果是1.
有人請解釋我們如何得出這個結果嗎?
在組件庫的代碼審查中,我發現需要一些每月每天計算的語法。C#操作順序語法解釋
簡化的語法是這樣的:
int preDays = (new int[] { 0, 1, 2, 3, 4, 5, 6 })[3] - 2;
凡[3]
和-2
是變量。在上面的例子中,preDays
的結果是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
感謝您的回答,我只是搞定了一個二維數組。 – 2014-10-05 15:05:30
要創建陣列的製造在同一行的算術運算和假定
指數在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;
這是否幫助:
var array = new int[] { 0, 1, 2, 3, 4, 5, 6 };
int value = array[3]; //3
int preDays = value - 2; //1
這一個在我看來非常簡單:
中的()有定義一個新的匿名數組。由七個元素組成的數組,分別爲0,1,2,3,4,5和6.從這個數組中獲取第四個元素。 ([3]引用第四個元素作爲從[0]開始的計數,指的是第一個元素)。
陣列的第四個元素是3,所以表達式(new int[] { 0, 1, 2, 3, 4, 5, 6 })[3]
解析爲3.減去2從3使preDays成填充有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
(new int[] { 0, 1, 2, 3, 4, 5, 6 })[3] - 2
(與指數3項),將執行3 - 2 = 1
什麼你難道不明白,特別是?它只是創建一個數組獲取第四個元素,並從中減去2。 – 2014-10-05 14:55:42
'(new int [] {0,1,2,3,4,5,6})[n]'對於'0 <= n <7'將始終爲'n',否則爲'ArgumentOutOfRangeException'。這個代碼最好是... *次優。 – 2014-10-05 14:57:28
看來這是一個可怕的地方問一個問題! – 2014-10-05 15:24:44