C#数组声明语法与C++数组声明语法的区别

7

我基本上是一个 c++ 程序员,现在正在学习 c#。在声明数组时,我发现 c# 要求在类型之后添加方括号,而不像 c、c++ 那样。这是因为 c# 语言规范有什么特殊的原因吗?


5
我也是一个C++程序员,但我必须说我发现C数组声明语法很不直观。 - juanchopanza
@juanchopanza 是的,我同意,但现在我用它 :) - ZoomIn
实际上,在C++中,实际类型也是T[N](括号直接放在基本类型之后),只是声明必须以不同的方式编写,这确实有点矛盾。 - Christian Rau
C++ 数组大小能在声明后修改吗? - user991513
2个回答

5
我能想到的唯一好理由是在此构造中清晰地指示list1和list2的类型:
在C#中:
int[] list1, list2;

list2是一个整数数组。

在C ++中:

int list1[], list2;

list2是一个整数。

可读性非常重要。


这在C++中无法编译 - 你需要使用"int list1[], list2"。 - Dave Doknjas

3

这也是为了保持一致性(有助于可读性)。

在 C# 变量声明中,完整的类型规范总是在变量名的左侧。

而在 C/C++ 中,有时类型规范的一部分位于变量名的右侧,这是不一致的。


你能给我一个在C++中=右侧的类型规范部分的例子吗? - ZoomIn
@ZoomIn 抱歉,我想说的是“变量名”,而不是“=”... 我已经更正了我的帖子。 - Matthew Watson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接