0

0

C# 中的模式匹配 var 模式如何捕获值?

畫卷琴夢

畫卷琴夢

发布时间:2025-09-30 08:22:02

|

807人浏览过

|

来源于php中文网

原创

var模式用于在C#模式匹配中捕获表达式值并声明新变量,其语法为expression is var variableName,始终匹配成功并将expression的值赋给variableName,该变量可在后续条件或代码块中使用。

c# 中的模式匹配 var 模式如何捕获值?

在 C# 中,var 模式用于在模式匹配中捕获表达式的值,并将其分配给一个新变量。这个变量的作用域仅限于该模式匹配语句的右侧或后续操作(如 when 条件或大括号内的代码块)。

var 模式的语法和行为

var 模式的基本形式是:

expression is var variableName

它总是匹配成功(因为任何表达式都可以赋给 var 变量),并把 expression 的值赋给 variableName。这个 variableName 就是在当前作用域中声明的新局部变量。

如何捕获值

当使用 var 模式时,C# 编译器会生成一个具有确定类型的局部变量,其类型由表达式的运行时类型决定(编译时推断)。

  • 如果 expression 非 null,variableName 引用该对象。
  • 如果 expression 为 null,variableName 被设为 null(引用类型)或对应默认值(值类型)。

示例:

68爱写
68爱写

专业高质量AI4.0论文写作平台,免费生成大纲,支持无线改稿

下载
if (obj is var temp)
{
    Console.WriteLine($"捕获的值: {temp}");
}

这里无论 obj 是什么类型或是否为 null,temp 都会被赋值并可在块内使用。

实际应用场景

var 模式常用于需要临时变量、类型检查后进一步处理,或结合 when 子句进行更复杂判断的场景。

switch (value)
{
    case var x when x != null && x.ToString().Length > 0:
        Console.WriteLine($"非空字符串长度: {x.ToString().Length}");
        break;
}

在这个 switch case 中,var x 捕获了 value 的值,然后通过 when 条件进行额外判断。

基本上就这些 —— var 模式不是用来“过滤”数据,而是用来“接收”当前值以便后续使用,同时保持模式匹配语法的一致性。它在调试、日志记录或条件解构中特别有用。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

232

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

437

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

755

2023.08.22

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

534

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

417

2024.03.13

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

118

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

256

2025.10.24

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

excel表格操作技巧大全 表格制作excel教程
excel表格操作技巧大全 表格制作excel教程

Excel表格操作的核心技巧在于 熟练使用快捷键、数据处理函数及视图工具,如Ctrl+C/V(复制粘贴)、Alt+=(自动求和)、条件格式、数据验证及数据透视表。掌握这些可大幅提升数据分析与办公效率,实现快速录入、查找、筛选和汇总。

0

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号