2013-05-07 127 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