首页 » 技术分享 » [Clr via C#读书笔记]Cp16数组

[Clr via C#读书笔记]Cp16数组

 

Cp16数组

一维数组,多维数组,交错数组;引用类型;P338的图非常的清楚地描述了值类型和引用类型在托管堆中的关系;越界检查;

数组初始化

数组初始化器;
四种写法

string[] names = new string[] { "hello", "world" };  
var dogs = new string[] { "hello", "world" }; 
var cats = new[] { "hello", "world" };
string[] datas = { "hello", "world" };

数组的转型

数组类型必须维数相同,且值类型不能转换成其他类型;
Array.Copy
数组的协变

Array的静态方法

定义了很多有用的静态方法

所有的数组都隐式的实现了IEnumerable,ICollection,IList

所以也就可以提供这些接口对应的操作。

数组的传递和返回

传递的是引用,所以被改的是本身;
Array.Copy执行的是浅拷贝;
返回数据类型最好返回一个全新的数组,涉及到访问权限控制;
不要返回null,返回0个元素的数组;

创建下限非0的数组

CreateInstance方法

数组的访问性能

0基的性能好于非0基,实际上非零基的很少用;

不安全的数组访问和固定大小的数据

这部分了解即可

转载自原文链接, 如需删除请联系管理员。

原文链接:[Clr via C#读书笔记]Cp16数组,转载请注明来源!

0