C#创建数组

yuxinsuoxiang 2015-01-15 10:21:22
[size=24px][/size]
我想问一下 int [] a = new int[5];
Array a = Array.CreateInstance(typeof(string),5);
这两句本质的区别是什么啊,我现在学乱了。
...全文
504 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
smthgdin_020 2015-01-16
  • 打赏
  • 举报
回复
一个是引用类型一个是值类型;抽象类也可以用于声明,具体用子类给她赋值就行。
zixingcheng_ 2015-01-16
  • 打赏
  • 举报
回复
Array a1 = Array.CreateInstance(typeof(int),5); int [] a = new int[5]; a = (int [])a1 ; 我觉得本质上是一样的,Array 是基础,int数组只是其中一个实现而已。用Array.CreateInstance需要拆箱不划算,一般直接用数组实例就好。 Array.CreateInstance 用在你不知道创建的数组类型时比较好,还有数组下标为自定义的时候比较好用,比如 a[-1] a[0]的需要时候 无需纠结,测试下会发现耗时区别不大。
wenyiy_869047718 2015-01-16
  • 打赏
  • 举报
回复
C#创建一维数组 string[] Name = new string[3]; //初始化一维数组 string[] Name = new string[3] {"a","b","c"]; //遍历一维数组 class program { static void Main()//入口方法 { string[] Name;//定义数组类型变量Name Name = new string[200];//数组变量Name得到新的数组对象引用 for (int i = 0; i < 200; i++)//开始for循环 { Name[i] = i.ToString();//对数组元素进行赋值 } for (int i = 0; i < 200; i++) { System.Console.Write(Name[i] + ","); } System.Console.ReadLine();//等待回车继续 } }
扯淡砖家 2015-01-15
  • 打赏
  • 举报
回复
Array.CreateInstance(typeof(string),5)这是一个静态方法,返回一个Array对象。你转到定义看看就知道了。
yuxinsuoxiang 2015-01-15
  • 打赏
  • 举报
回复
其实我现在纠结的是Array ,它本身是一个抽象的类啊,Array a =。。。。。,他怎么能够创建一个对象a呢?
S314324153 2015-01-15
  • 打赏
  • 举报
回复
Array,Arraylist没有固定长度,但是成员都是object,添加和取值要装箱拆箱; 数组就不用这么麻烦,但是数组有固定长度。
  • 打赏
  • 举报
回复
Array包含的全是object,你在用的时候必须将Array进行拆箱,如果直接给你一个Array的实例,你根本不可能知道里面包含了什么 int[]这种就是你明确知道这到底是什么类型的数组 补充下:Array这东西基本没人用了
宝_爸 2015-01-15
  • 打赏
  • 举报
回复
第一种方法你必须在编译时就知道type也就是int 第二种方法,你可以在运行时才知道,类似于reflection的概念。
宝_爸 2015-01-15
  • 打赏
  • 举报
回复
类型不一样吧。 还真没有用第二种方法创建过数组。
WM_JAWIN 2015-01-15
  • 打赏
  • 举报
回复
单纯两句来看,后者属于装B
  • 打赏
  • 举报
回复
引用 5 楼 yuxinsuoxiang 的回复:
其实我现在纠结的是Array ,它本身是一个抽象的类啊,Array a =。。。。。,他怎么能够创建一个对象a呢?
Array.CreateInstance(typeof(string),5);这句话创建的只是继承自Array的一个具体的类,有可能就是ArrayList 这就跟IList<string> list = new List<string>()一样,难道你也问IList分明是个接口,为什么它就能创建呢?
相思梦 2015-01-15
  • 打赏
  • 举报
回复
为什么不可以你,有什么不好理解 int[] x = { }; Array.CreateInstance(typeof(int),0); 这两句有什么不一样?没有 int[] 就是个语法糖,下面还是Array

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧