zoukankan      html  css  js  c++  java
  • [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基,实际上非零基的很少用;

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

    这部分了解即可

  • 相关阅读:
    桥接模式(Bridge)
    Python中文件操作
    Python中字符的编码与解码
    反转部分单向链表
    删除链表的中间节点和a/b处的节点
    链表中删除倒数第K个节点
    如何实现链表的逆序
    Python高阶函数及函数柯里化
    Python函数作用域
    Python函数参数与参数解构
  • 原文地址:https://www.cnblogs.com/newlifechou/p/8178799.html
Copyright © 2011-2022 走看看