我基本上是C++的人,现在正在学习c#。 虽然数组声明我发现c#期望类型不像c,C++之后的方括号。 有没有什么理由c#语言规范是这样呢?c#数组声明语法vs C++数组声明语法
回答
唯一的好理由,我能想到的是使类型列表1和列表2中的这种结构清楚地表明:
在C#:
int[] list1, list2;
列表2是int数组。
在C++:
int list1[], list2;
list2中是一个int。
可读性在这里很关键。
尽管在C++中不能编译,但你需要“int list1 [],list2”。 – 2013-05-07 14:21:36
@DaveDoknjas true,我会编辑我的答案 – 2013-05-07 14:23:32
这也是为了一致性(这有助于可读性)。
在C#变量声明中,完整类型说明始终位于变量名的左侧。
在C/C++中,有时类型规范的一部分位于变量名的右侧,这是不一致的。
你能给我举一个= C++右边的类型说明的例子 – ZoomIn 2013-05-07 08:54:09
@ZoomIn对不起,我打算说“变量名”,而不是“=” ...我纠正了我的帖子。 – 2013-05-07 09:37:22
- 1. Java数组声明的语法差异?
- 2. 错误数组声明语法
- 3. 声明整数时的C++语法
- 4. C++到C#数组声明
- 5. ANSI-C语法 - 数组声明如[*]等alii
- 6. C#隐式数组声明
- 7. C#来声明数组
- 8. C++数组声明问题
- 9. C++在新函数声明器中访问此语法语法
- 10. typedef声明语法
- 11. mumps语法声明
- 12. C++ * VS和函数声明
- 13. C++/CLI通用::字典声明语法
- 14. C++指针Defererence声明语法
- 15. 声明一组C++
- 16. 数组定义vs数组声明
- 17. 数组声明
- 18. 在if语句中声明数组
- 19. java声明数组基于If语句
- 20. C#语言枚举声明
- 21. C++ - 声明数组内函数
- 22. C#方法声明
- 23. C# - 浮法[] []声明
- 24. 在声明时以C编程语言初始化2D数组
- 25. if语句VS函数声明
- 26. Python'else'声明 - 无效语法
- 27. ST monad声明的语法
- 28. 或声明无效语法
- 29. 函数语法里面的声明
- 30. ExtJS的函数声明语法
我也是一个C++的人,但我必须说我发现C数组声明语法违反直觉。 – juanchopanza 2013-05-07 07:11:16
@juanchopanza雅,我同意,但现在用它:) – ZoomIn 2013-05-07 09:45:22
事实上,C++中的实际类型也是'T [N]'(括号直接在基类型之后),它只是必须写入的声明不同的是,这确实有点矛盾。 – 2013-05-07 12:41:18