码迷,mamicode.com
首页 > 其他好文 > 详细

第三部分 基本类型:第15章 数组

时间:2014-07-31 16:03:47      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:des   cWeb   style   blog   color   使用   os   strong   

派生关系:
System.Object => System.Array => 数组

数组是引用类型,是在托管堆上进行分配的。

Int32[] myIntegers;          //声明了一个数组引用,初始设置为null
myIntegers = new Int32[100]; //创建了含有100个Int32的数组,初始化为0。该数组的内存块地址被返回并保存到myIntegers变量中


创建引用类型数组:

Control[] myControls;          //声明一个数组引用
myControls = new Control[150]; //创建含有50个Control引用的数组,分配含有50个Control引用的一个数组,这些引用全部被初始化为null。

 

bubuko.com,布布扣

bubuko.com,布布扣

 

创建多维数组:

//创建二维数组,由Double值构成
Double[,] myDoubles = new Double[10,20];
//创建三维数组,由String引用构成
String[,,] myStrings = new String[5,3,10];

 

CLR支持交错数组(jagged array),即由数组构成的数组。
如何创建多边形数组,每个多边形由一个Point实例数组构成:

//创建含有Point数组的一维数组
Point[][] myPolygons = new Point[3][];

//myPolygons[0]引用一个含有10个Point实例的数组
myPloygons[0] = new Point[10];

//myPolygons[1]引用一个含有20个Point实例的数组
myPolygons[1] = new Point[20];

//myPloygons[2]引用一个含有30个Point实例的数组
myPloygons[2] = new Point[30];

//显示第一个多边形中的Point
for(Int32 x=0;x < myPloygons[0].Length; x++)
{
Console.WriteLine(myPloygons[0][x]);
}

 

 

16.1 初始化数组元素


String[] name = new String[]{"Aidan","Grant"}; //大括号中以逗号分隔的数据项称为数组初始化器,每个数据项都可以是一个任意复杂度的表达式。

语法糖简写:
String[] names ={"Aidan","Grant"};
但不允许写成:
var names ={"Aidan","Grant"};  //需要编译器做的太多了,所以报错

可利用C#的隐式类型的数组功能让编译器推断数组元素的类型:
下面代码没有在new和[]之间指定类型:

var names = new[]{"Aidan","Grant",null}; //null可转型为任意引用类型(包括String),所以推断为String类型

//使用C#的隐式类型的局部变量和隐式类型的数组功能:(错误)

var names = new[] {"Adia","Grant",123}; //报错:找不到隐式类型数组的最佳类型,因为string和int32共同基类是Object,所以不得不创建Object引用的数组,然后对123进行装箱。C#团队认为装箱代价高昂,所以编译报错。

 

“隐式类型的数组”如何与“匿名类型”和“隐式类型的局部变量”组合使用:

//使用C#的隐式类型的局部变量、隐式类型的数组和匿名类型功能:
var kids = new[]{new {Name="Aian"},new {Name="Crant"}};
//示例用法(用了另一个隐式类型的局部变量):
foreach(var kid in kids){
  Console.WriteLine(kid.Name);
}

 

第三部分 基本类型:第15章 数组,布布扣,bubuko.com

第三部分 基本类型:第15章 数组

标签:des   cWeb   style   blog   color   使用   os   strong   

原文地址:http://www.cnblogs.com/zxx193/p/3880628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!