前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C Sharp(七)

C Sharp(七)

作者头像
1ess
发布2021-11-01 16:03:32
7770
发布2021-11-01 16:03:32
举报
文章被收录于专栏:0x7c00的专栏0x7c00的专栏

C Sharp(七)

發佈於?2018-10-28

这一篇,我们讲讲 C# 中的数组对象及其协变概念。

概述


数组是由变量名表示的一组同类型的数据元素,每个元素可以通过索引来访问。

C# 数组的特点:

  • C# 不支持动态数组,也就是数组一旦创建,就不可以更改大小
  • 索引从 0 开始

数组类型

C# 支持一维数组和多维数组,多维数组又分为矩形数组和交错数组。

数组是对象

数组实例是从 System.Array 继承来的对象,继承了很多属性和方法:

  • Rank 属性,返回数组的维数
  • Length 属性,返回数组的长度

注意: 数组是引用类型,数组元素可以是值类型也可以是引用类型,这一点与 Ocjective-C 不同,Ocjective-C 中的数组元素不能是基本类型。

一维数组

我们可以在类型和变量名之间加中括号来声明一维数组:

long[] array;

要实例化一维数组,我们使用数组创建表达式,使用 new 操作符,后跟基类名称和中括号,中括号里要有数组长度:

int[] array = new int[5];

要访问数组元素,要使用索引:

int[] array = new int[5]; array[2] = 10; int intVal = array[2];

初始化数组

当数组创建后,每个元素会自动初始化默认值:

  • 整型: 0
  • 浮点数: 0.0
  • 布尔型: false
  • 对象: null

我们还可以使用初始化列表显式初始化数组元素:

int[] array = new int[] { 2, 3, 4, 5};

当在一条语句声明并初始化数组时,可以使用快捷语法:

int[] array = {1, 2, 3, 4};

我们可以使用 foreach 语句遍历数组元素:

int[] array = {1, 2, 3, 4}; foreach (var item in array) { //...item }

数组的协变

协变和逆变我们之后说泛型的时候会细讲,这里我们只是提一下数组中的协变。 协变是指: 即使某个对象不是数组的基类型,我们也可以把他赋值给数组元素。以下情况可以使用数组协变:

  • 数组是引用类型数组
  • 赋值类型和数组基类类型存在显式或隐式转换

由于基类和派生类总存在隐式转换,因此我们可以把派生类对象赋值给基类型数组元素:

class A {} class B : A {} class Program { static void Main() { A[] array = new A[3]; A[0] = new B(); } }

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 数组类型
      • 数组是对象
        • 一维数组
          • 初始化数组
            • 数组的协变
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com