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数组,转载请注明来源!