【从零开始入门unity游戏开发之——C#篇56】C#补充知识点——模式匹配

server/2025/2/13 4:09:13/

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇

  • 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
  • unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
  • unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
  • unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。

这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。

文章目录

    • **模式匹配基本概念**
      • **什么是模式匹配?**
    • **模式匹配的主要形式**
      • **1. 常量模式 (`is 常量`)**
        • **示例代码**
        • **解释**
      • **2. 类型模式 (`is 类型 变量名` 和 `case 类型 变量名`)**
        • **示例代码**
        • **解释**
      • **3. `var` 模式**
        • **示例代码**
        • **解释**
      • **4. Switch 表达式模式**
        • **示例代码**
        • **解释**
      • **5. 属性模式**
        • **示例代码**
        • **解释**
      • **6. 元组模式**
        • **示例代码**
        • **解释**
      • **7. 位置模式**
        • **示例代码**
        • **解释**
    • **总结**
  • 专栏推荐
  • 完结

模式匹配基本概念

什么是模式匹配?

模式匹配是 C# 7.0 引入的一种强大语法,用于检查一个值是否符合某种条件,并从中提取信息。它增强了 is 表达式和 switch 语句的功能,使代码更简洁、直观。

  • 核心思想:在检查值的同时,进行类型转换或数据提取。
  • 主要作用:简化条件判断逻辑,减少冗余代码,提升代码可读性和维护性。

模式匹配的主要形式

1. 常量模式 (is 常量)

用于判断输入值是否等于某个特定的常量值(如数值、字符串、布尔值等)。

示例代码
object o = 1;if (o is 1)
{Console.WriteLine("o 是 1");
}if (o is null)
{Console.WriteLine("o 是 null");
}
解释
  • o is 1:判断 o 是否等于 1
  • o is null:判断 o 是否为 null

2. 类型模式 (is 类型 变量名case 类型 变量名)

用于判断输入值的类型,并在匹配成功时自动将值赋给新变量,避免显式类型转换。

示例代码
object o = 1.5f;// 使用 is 表达式
if (o is int i)
{Console.WriteLine($"int: {i}");
}
else if (o is float f)
{Console.WriteLine($"float: {f}

http://www.ppmy.cn/server/167233.html

相关文章

腾讯云HAI部署DeepSeek结合Ollama API搭建智能对话系统

前言 本文将详细介绍如何在腾讯云HAI平台上部署DeepSeek模型,并配置使用Ollama API服务以实现对外部请求的支持。通过对前期准备、部署流程、API服务配置及使用的详细阐述,希望能为读者提供一个全面且实用的指南,助力AI应用的高效开发和部署…

【EXCEL】【VBA】最大值行索引查找与Z字形数据重排

一、公式获取列中最大值及所对应的行号 1. 获取区域最大值 MAX(IF(ROW(N:N)>3,N:N,""))原理解析: ROW(N:N) - 返回行号IF(ROW(N:N)>3,N:N,"") - 过滤第3行之后的数据MAX() - 计算最大值 2. 查找最大值位置 MATCH(MAX(IF(ROW(O:O)>…

数据可视化技术综述(4)衡量数据的性能指标的十大维度

数据可视化系统的性能直接影响用户体验与业务决策效率。本文从技术实现与工程化视角,系统阐述衡量数据可视化性能的十大核心维度,包括渲染效率、数据吞吐量、内存占用、响应延迟、可扩展性、准确性、跨平台兼容性、交互流畅度、资源消耗及容错性。通过分…

黑马 Linux零基础快速入门到精通 笔记

初识Linux Linux简介 提及操作系统,我们可能最先想到的是windows和mac,这两者都属于个人桌面操作系统领域,而Linux则属于服务器操作系统领域。无论是后端软件、大数据系统、网页服务等等都需要运行在Linux操作系统上。 Linux是一个开源的操作…

Maven 中常用的 scope 类型及其解析

在 Maven 中,scope 属性用于指定依赖项的可见性及其在构建生命周期中的用途。不同的 scope 类型能够影响依赖项的编译和运行阶段。以下是 Maven 中常用的 scope 类型及其解析: compile(默认值): 这是默认的作用域。如果…

【深度学习】多目标融合算法(四):多门混合专家网络MMOE(Multi-gate Mixture-of-Experts)

目录 一、引言 二、MMoE(Multi-gate Mixture-of-Experts,多门混合专家网络) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场景与建模 2.3.2 模型代码实现 2.3.3 模型训练与推理测试 2.3.4 打印模型结构 三、总结 一、…

ping的网络协议,ping用到的网络协议!

ping命令使用的网络协议是ICMP(Internet Control Message Protocol),即因特网控制消息协议。ICMP协议是TCP/IP协议簇的一个子协议,主要用于在IP主机、路由器之间传递控制消息,包括网络通不通、主机是否可达、路由是否可…

CSS 表单 实现响应式布局

前言 在现代 Web 开发中,表单是用户与网页交互的重要组成部分。一个设计良好的表单不仅要美观,更要具备优秀的用户体验和良好的响应式布局能力。本文将以一个简单的 HTML 表单为例,详细介绍如何使用 CSS 对表单进行美化并实现响应式设计。 …