2013-05-07 196 views
8

我基本上是C++的人,現在正在學習c#。 雖然數組聲明我發現c#期望類型不像c,C++之後的方括號。 有沒有什麼理由c#語言規範是這樣呢?c#數組聲明語法vs C++數組聲明語法

+5

我也是一個C++的人,但我必須說我發現C數組聲明語法違反直覺。 – juanchopanza 2013-05-07 07:11:16

+0

@juanchopanza雅,我同意,但現在用它:) – ZoomIn 2013-05-07 09:45:22

+0

事實上,C++中的實際類型也是'T [N]'(括號直接在基類型之後),它只是必須寫入的聲明不同的是,這確實有點矛盾。 – 2013-05-07 12:41:18

回答

6

唯一的好理由,我能想到的是使類型列表1和列表2中的這種結構清楚地表明:

在C#:

int[] list1, list2; 

列表2是int數組。

在C++:

int list1[], list2; 

list2中是一個int。

可讀性在這裏很關鍵。

+0

儘管在C++中不能編譯,但你需要「int list1 [],list2」。 – 2013-05-07 14:21:36

+0

@DaveDoknjas true,我會編輯我的答案 – 2013-05-07 14:23:32

3

這也是爲了一致性(這有助於可讀性)。

在C#變量聲明中,完整類型說明始終位於變量名的左側。

在C/C++中,有時類型規範的一部分位於變量名的右側,這是不一致的。

+0

你能給我舉一個= C++右邊的類型說明的例子 – ZoomIn 2013-05-07 08:54:09

+0

@ZoomIn對不起,我打算說「變量名」,而不是「=」 ...我糾正了我的帖子。 – 2013-05-07 09:37:22