首页 新闻 会员 周边 捐助

c#数组声明

0
悬赏园豆:20 [已解决问题] 解决于 2011-07-31 11:28

c#数组声明时[]为什么要放在标识符前面,放在后面不可以啊

数组声明时可以初始化 例如int[] array=new int[]{12,45,1,2};

集合List声明时初始化不可以 例如List<int> list=new List<int>{12,45,1,2};(vs2005)

求解,谢谢

meifage2的主页 meifage2 | 初学一级 | 园豆:41
提问于:2011-07-30 11:44
< >
分享
最佳答案
0

其实你想怎么写都可以,这都是浮云,重点是最后的IL,如果你有时间建议看看生成的IL,他们是没有区别的。

收获园豆:10
today4king | 老鸟四级 |园豆:3499 | 2011-07-30 20:37
其他回答(3)
0

c#数组声明时[]放在标识符前面这是语言规定的,这个没什么道理的,语言设计者这样设计的而已。

集合List声明时初始化不可以 例如List<int> list=new List<int>{12,45,1,2};(vs2005) 这个写的有问题哦,改成这样看看:

List<int> list=new List<int>(){12,45,1,2};

收获园豆:5
artwl | 园豆:16736 (专家六级) | 2011-07-30 12:33
楼上的说的对,对于集合和数组是有区别的,一下是他们的区别,你知道了却别也就知道了为什么了
1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的
2.数组要声明元素的类型,集合类的元素类型却是object.
3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。
4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标访问。很多时候集合有定制的下标类型,对于队列和栈根本就不支持下标访问!
5.数组可以有维数,集合没有。
支持(0) 反对(0) lichen396116416 | 园豆:58 (初学一级) | 2011-07-30 15:33
0

语法规则而已,没啥好解释的,数组是C#原生的基础数据结构,List只是个类而已

如果你想简写,3.5及以上版本可以写成

int[] array={12,45,1,2};

参考:

http://msdn.microsoft.com/zh-cn/library/9b9dty7d.aspx

收获园豆:5
无泪之魂 | 园豆:287 (菜鸟二级) | 2011-07-30 16:52
0

得这样写 List<int> list=new List<int>(){12,45,1,2};

慧☆星 | 园豆:5722 (大侠五级) | 2011-07-31 09:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册