第三部分 基本类型:第16章 数组
派生关系:
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。
创建多维数组:
//创建二维数组,由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); }
转载于:https://www.cnblogs.com/zxx193/p/3880628.html
第三部分 基本类型:第16章 数组相关推荐
- Think in Java第四版 读书笔记10 第16章 数组
Think in Java第四版 读书笔记10 第16章 数组 数组和容器很像 但他们有一些差别 16.1 数组为什么特殊 数组与容器的区别主要在效率和存储类型 效率:数组是简单的线性序列 使得数组的 ...
- 汇编语言-第三版-王爽-第15章 外中断-第16章 直接定址表
P280:在屏幕中间依次显示a~z, 显示过程中,按下ESC键后,改变显示颜色 P283:在DOS下,按F1键后改变当前屏幕的显示颜色,其他的键照常处理 P293:以十六进制的形式显示给定的字节型数据 ...
- mySQL 教程 第16章 MySQL复制
第16章 MySQL复制 复制解决的问题 概述:你的网站访问量非常大,对系统的稳定性非常高,那么可以使用mysql功能的复制功能,复制是指将主要的数据库的DDL和DML操作通过二进制日志传到复制服务器 ...
- 《Swift开发实战》——第16章,第16.2节下标脚本用法
本节书摘来自异步社区<Swift开发实战>一书中的第16章,第16.2节下标脚本语法,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 16.2 下标脚本 ...
- 《C++ Primer Plus》读书笔记 第16章 string类和标准模板库
第16章 string类和标准模板库 1.string类 表16.1列出了string类的几个构造函数.其中NBTS(null-terminated string)表示以空字符结束的传统C-风格字符串 ...
- 第 16 章 string类和标准模板库
第 16 章 string类和标准模板库 16.1 string类 C语言在 string.h(C++中为cstring)提供了一系列的字符串函数. 16.1.1 构造字符串 string 实际上是模 ...
- 《JAVA编程思想》学习笔记:第16章(数组)
目录 Java编程思想(一)第1~4章:概述 Java编程思想(二)第5章:初始化和清理 Java编程思想(三)第6章:访问权限 Java编程思想(四)第7章:复用类 Java编程思想(五)第8章:多 ...
- 【《C Primer Plus》读书笔记】第16章:C预处理器和C库
[<C Primer Plus>读书笔记]第16章:C预处理器和C库 16.1 翻译程序的第一步 16.2 明示常量:#define 16.2.1 记号 16.2.2 重定义常量 16.3 ...
- 4.13日第12次作业,16章外包,17章需求,19章组织级与大型项目
4.13日第12次作业,16章外包,17章需求,19章组织级与大型项目 29-高项-田哲琦 16章.外包管理 1.外包的形式有哪五种?什么是利益关系?P346-348 答:企业现行采用的主要外包形式如 ...
最新文章
- SamplePairing:针对图像处理领域的高效数据增强方式 | PaperDaily #34
- XE5 Android 开发实现手机打电话和发短信 [转]
- DDD-上下文映射图
- openssl搭建私有CA
- 梦断代码读后感——终结
- 图标透明,产生的EXE图标不透明
- 阿里云郑晓:浅谈GPU虚拟化技术(第四章)
- mysql如何导入mdl文件_将sql文件导入PowerDesigner中的方法(将oracle sql文件转换成mysql)...
- MSP430的JTAG接口和BSW接口
- IE重置input file
- ACM解题总结——HihoCoder1199 (微软笔试题)
- SceneKit中文文档
- 飞秋FeiQ可以聊天,但无法传输文件
- 深度学习方法的超分辨率(Super-resolution)方向论文【不定期更新】
- 社区送温暖!Unitimes携手环信新春送好礼
- 电饭锅鸿蒙系统,有了美的轻食电饭煲,人们更加确定了做饭工具的重要性
- 大家都用什么Maven插件?及本人的几个常用插件分享
- 上网操作1000问(供初學者)
- 用上office365后配合RaiDrive效率如何提高
- 【Java、Redis】通过中心经纬度与半径获取范围内的结果集(类似附近的人)
热门文章
- r语言和python-R VS Python:R语言是否真的过时了?
- python流程控制-Python 流程控制
- python3d动态图-Python图像处理之gif动态图的解析与合成操作详解
- 学python需要英语基础吗-英语基础一般,如何才能学习C语言编程和Python
- python填写excel-Python|读、写Excel文件(三种模块三种方式)
- python自动测试p-python自动化测试_8
- python雷达图-Python成绩单雷达图
- python第三方库numpy-谁能介绍下Python生态中的第三方库NumPy
- 初学python还是swift-iOS 将来 Swift 也许会取代 Python
- python在哪写代码-python的代码写在哪里,怎么样运行python代码