C#可空类型与数组

文章目录

      • 可空类型
      • NULL合并运算符(??)
      • 数组
        • 数组声明
        • 数组初始化
        • 数组赋值
        • 数组访问
        • 多维数组
        • 交错数组
        • 数组类
          • 数组类的常用属性
          • 数组类的常用方法

可空类型

  C#提供了一种特殊的数据类型,nullable类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。声明一个nullable类型(可空类型)的语法如下:

<data_type> > ? <variable_name> = null;

namespace NullAble
{class Program{static void Main(string[] args){int? a = null;int? b = 123;Console.WriteLine("a:{0}, b:{1}", a, b);}}
}

在这里插入图片描述

NULL合并运算符(??)

  Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。

namespace NullAble
{class Program{static void Main(string[] args){int? a = null;int? b = 123;int c = a ?? 234;int d = b ?? 234;Console.WriteLine("c:{0}, d:{1}", c, d);}}
}

在这里插入图片描述

数组

  数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。

数组声明

datatype[] arrayname

  datatype:这个数组存储数据的类型。

  arrayname:数组名。

数组初始化

  数组是一个引用类型,所以需要用new关键字来创建数组。

datatype[] arrayname = new datatype[n];

  n表示数组的空间大小。

数组赋值

通过下标给指定位置赋值

int[] arr = new int[4];

arr[0] = 1;

声明时进行赋值

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

创建并初始化一个数组

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

省略数组大小进行赋值

nt[] arr = new int[] {1, 2, 3, 4, 5};

数组访问
namespace Array
{class Program{static void Main(string[] args){int[] arr1 = new int[3];arr1[0] = 1;int[] arr2 = { 1, 2, 3, 4, 5 };int[] arr3 = new int[5] { 1, 3, 5, 7, 9 };int[] arr4 = new int[] { 0, 2, 4, 6, 8 };int a = arr1[0];Console.WriteLine("a:{0}\n", a);for(int i = 0; i < 5; i++){Console.Write("{0} ", arr2[i]);}Console.WriteLine("\n");foreach (int i in arr3){Console.Write("{0} ", i);}Console.WriteLine("\n");}}
}

在这里插入图片描述

多维数组

  多维度存储相同类型数据的数组。

namespace Array
{class Program{static void Main(string[] args){int[,] arr = new int[5, 2] { { 0, 1 }, { 2, 3 }, { 4, 5 }, { 6, 7 }, { 8, 9 } };for(int i = 0; i < 5; i++){for(int j = 0; j < 2; j++){Console.Write("{0} ", arr[i, j]);}Console.WriteLine(" ");}}}
}

在这里插入图片描述

交错数组

  交错数组是存放数组的数组。

namespace Array
{class Program{static void Main(string[] args){int[][] arr = new int[][] { new int[] { 0, 1 }, new int[] { 2, 3 }, new int[] { 4, 5 }, new int[] { 6, 7 }, new int[] { 8, 9 } };for(int i = 0; i < 5; i++){for(int j = 0; j < 2; j++){Console.WriteLine("{0} ", arr[i][j]);}}}}
}

在这里插入图片描述

数组类
数组类的常用属性
属性描述
IsFixedSize获取一个值,该值指定数组是否有固定大小
IsReadOnly描述获取一个值,该值指示数组是否只读
Length获取一个32位整数,返回数组长度
LongLength获取一个64位整数,返回数组长度
Rank获取数组的秩(维度)
数组类的常用方法
方法描述
Clear(Array, index, Length)根据元素的类型,设置数组从下标index开始,长度为length的元素为零、为false或者为null
Copy(Array, Array, Int32)从数组的第一个元素开始复制N个元素到另一个数组
CopyTo(Array, Int32)把源数组全部拷贝到目标数组,从目标数组的第N位开始覆盖
GetLength(dimension)/GetLongLength(dimension)获取数组指定维度的长度,返回32喂整数或64位整数
GetLowerBound返回数组指定维度的第一个元素的索引
GetUpperBound返回数组指定维度的最后一个元素的索引
Reverse(Array)逆转整个一维数组
SetValue(Object, Int32)给一维数组中指定位置的元素设置值
Sort(Array)排序
namespace MyArray
{class Program{static void Main(string[] args){int[] arr1 = new int[5] { 1, 2, 3, 4, 5 };int[] arr2 = new int[5] { 1, 2, 3, 4, 5 };Array.Clear(arr1, 1, 3);foreach(int i in arr1){Console.Write("{0} ", i) ;}Console.WriteLine(" ");Array.Copy(arr1, arr2, 3);foreach (int i in arr2){Console.Write("{0} ", i);}Console.WriteLine(" ");int[] arr3 = new int[10];arr1.CopyTo(arr3, 2);foreach (int i in arr3){Console.Write("{0} ", i);}Console.WriteLine(" ");int[,,] arr4 = new int[1, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } } };Console.WriteLine("一维:{0},二维:{1},三维:{2}", arr4.GetLength(0), arr4.GetLength(1), arr4.GetLength(2));Console.WriteLine("一维:{0},二维:{1},三维:{2}", arr4.GetUpperBound(0), arr4.GetUpperBound(1), arr4.GetUpperBound(2));Array.Reverse(arr1);foreach (int i in arr1){Console.Write("{0} ", i);}Console.WriteLine(" ");arr1.SetValue(2, 2);foreach (int i in arr1){Console.Write("{0} ", i);}Console.WriteLine(" ");Array.Sort(arr1);foreach (int i in arr1){Console.Write("{0} ", i);}Console.WriteLine(" ");}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<数据集>夜间车辆识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;5000张 标注数量(xml文件个数)&#xff1a;5000 标注数量(txt文件个数)&#xff1a;5000 标注类别数&#xff1a;8 标注类别名称&#xff1a;[car, pedestrian, traffic light, traffic sign, bicycle, bus, truck…

vue学习day08-v-model详解、sync修饰符、ref和$refs获取dom组件、Vue异步更新和$nextTick

25、v-model详解 &#xff08;1&#xff09;v-model原理 1&#xff09;原理: v-model本质上是一个语法糖&#xff0c;比如&#xff1a;在应用于输入框时&#xff0c;就是value属性与input事件的合写。 2&#xff09;作用 ①数据变&#xff0c;视图变 ②视图变&#xff0c…

短链接服务Octopus-搭建实战

[WARNING] The POM for cn.throwx:octopus-contract:jar:1.0-SNAPSHOT is missing, no dependency information available 解决方案&#xff1a; cd octopus-contract/ mvn install -------------- ➜ octopus-server git:(master) ✗ mkdir -p /data/log-center/octopus/s…

DockerCompose介绍,安装,使用

DockerCompose 1、Compose介绍 将单机服务-通过Dockerfile 构建为镜像 -docker run 成为一个服务 user 8080 net 7000 pay 8181 admin 5000 监控 .... docker run 单机版、一个个容器启动和停止问题&#xff1a; 前面我们使用Docker的时候&#xff0c;定义 Dockerfil…

Lottery 分布式抽奖(个人向记录总结)

1.搭建&#xff08;DDDRPC&#xff09;架构 DDD——微服务架构&#xff08;微服务是对系统拆分的方式&#xff09; &#xff08;Domain-Driven Design 领域驱动设计&#xff09; DDD与MVC同属微服务架构 是由Eric Evans最先提出&#xff0c;目的是对软件所涉及到的领域进行建…

.NET MAUI开源架构_2.什么是 .NET MAUI?

1.什么是.NET MAUI&#xff1f; .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创建本机移动和桌面应用。使用 .NET MAUI&#xff0c;可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款…

pytorch中一些最基本函数和类

1.Tensor操作 Tensor是PyTorch中最基本的数据结构&#xff0c;类似于NumPy的数组&#xff0c;但可以在GPU上运行加速计算。 示例&#xff1a;创建和操作Tensor import torch# 创建一个零填充的Tensor x torch.zeros(3, 3) print(x)# 加法操作 y torch.ones(3, 3) z x y pr…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(三)-机上无线电接入节点无人机

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

【JavaEE】AOP实现原理

概述 Spring AOP 是基于动态代理来实现AOP的, 此处主要介绍代理模式和Spring AOP的源码剖析 一.代理模式 代理模式是一种常用的设计模式&#xff0c;它允许为其他对象提供代理&#xff0c;以控制对这个对象的访问。这种结构在不改变原始类的基础上&#xff0c;通过引入代理类…

MongoDB教程(一):Linux系统安装mongoDB详细教程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、Ubuntu…

应急响应总结

应急响应 日志 windows IIS 6.0 及更早版本&#xff1a; C:\WINDOWS\system32\LogFiles\W3SVC[SiteID]\ IIS 7.0 及更高版本&#xff1a; C:\inetpub\logs\LogFiles\W3SVC[SiteID]\ Apache HTTP Server C:\Program Files (x86)\Apache Group\Apache2\logs\ 或者 C:\Prog…

STFT:解决音频-视频零样本学习 (ZSL) 中的挑战

传统的监督学习方法需要大量的标记训练实例来进行训练,视听零样本学习的任务是利用音频和视频模态对对象或场景进行分类&#xff0c;即使在没有可用标记数据的情况下。为了解决传统监督方法的限制&#xff0c;提出了广义零样本学习&#xff08;Generalized Zero-Shot Learning,…

Golang操作ES全系列(olivere curl操作es)

Golang操作ES全系列&#xff08;olivere & curl操作es&#xff09; &#x1f680;全部代码&#xff08;欢迎&#x1f44f;&#x1f3fb;star&#xff09;&#xff1a; https://github.com/ziyifast/ziyifast-code_instruction/tree/main/go-demo/go-es 1 olivere 创建clie…

html表格账号密码备忘录:表格内容将通过JavaScript动态生成。点击查看密码10秒关闭

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>账号密码备忘录</title><style>body {background: #2c3e50;text-shadow: 1px 1px 1px #100000;}/* 首页样式开始 */.home_page {color: …

《Linux系统编程篇》Visual Studio Code配置下载,中文配置,连接远程ssh ——基础篇

引言 vscode绝对值得推荐&#xff0c;非常好用&#xff0c;如果你能体会其中的奥妙的话。 工欲善其事&#xff0c;必先利其器 ——孔子 文章目录 引言下载VS Code配置VS Code中文扩展连接服务器 连接服务器测试确定服务器的IP地址VS code 配置ssh信息选择连接到主机选择这个添…

韦东山嵌入式linux系列-驱动设计的思想(面向对象/分层/分离)

1 面向对象 字符设备驱动程序抽象出一个 file_operations 结构体&#xff1b; 我们写的程序针对硬件部分抽象出 led_operations 结构体。 2 分层 上下分层&#xff0c;比如我们前面写的 LED 驱动程序就分为 2 层&#xff1a; ① 上层实现硬件无关的操作&#xff0c;比如注册…

防御第二次作业完成接口配置实验

一、实验括扑图 二、实验要求 1.防火墙向下使用子接口分别对应生产区和办公区 2.所有分区设备可以ping通网关 三、实验思路 1、配置各设备的IP地址 2、划分VLAN及VLAN的相关配置 3、配置路由及安全策略 四、实验步骤 1、配置PC跟Client还有server配置&#xff0…

【C++】初始化列表”存在的意义“和“与构造函数体内定义的区别“

构造函数是为了方便类的初始化而存在&#xff0c;而初始化时会遇到const成员变量、引用成员变量等&#xff0c;这些变量不允许函数内赋值&#xff0c;必须要在初始化时进行赋值&#xff0c;所以就有了初始化列表&#xff0c;初始化列表只能存在于类的构造函数中&#xff0c;用于…

Spring Boot快速上手

一&#xff0c;什么是spring 首先登陆Spring官网&#xff0c;看一下官网如何形容的&#xff0c; 可以看出Spring是为了使java程序更加快速&#xff0c;方便&#xff0c;安全所做出的java框架。 1.Spring Boot Spring Boot的诞生就是为了简化Spring的开发&#xff0c;也就是更…

gfast前端UI:基于Vue3与vue-next-admin适配手机、平板、pc 的后台开源模板

摘要 随着现代软件开发的高效化需求&#xff0c;一个能够快速适应不同设备、简化开发过程的前端模板变得至关重要。gfast前端UI&#xff0c;基于Vue3.x和vue-next-admin&#xff0c;致力于提供这样一个解决方案。本文将深入探讨gfast前端UI的技术栈、设计原则以及它如何适配手机…