C# is

ops/2025/3/6 21:41:18/

  • 类型检查
  • 模式匹配(`Pattern Matching`)
  • 模式匹配的类型模式
  • 与 `as` 的区别
  • 性能注意事项
  • 总结

C#中, is 关键字有多种用途,主要用于 类型检查模式匹配。以下是 is 关键字的主要用法:

类型检查

is 关键字可以用来检查一个对象是否兼容于指定的类型,或者是否实现了指定的接口。如果检查结果为真,则返回 true

  • 示例:
object obj = "Hello, World!";if (obj is string)
{Console.WriteLine("obj 是一个字符串类型");
}
else
{Console.WriteLine("obj 不是字符串类型");
}

在上面的例子中,obj is string 检查 obj 是否可以被转换为 string 类型。

模式匹配(Pattern Matching

C# 7.0开始,is 关键字支持模式匹配。模式匹配允许你在检查类型的同时,将对象的值赋给一个新变量,以便进一步使用。

  • 示例:
if (obj is string str)
{Console.WriteLine($"obj 是一个字符串,内容为:{str.ToUpper()}"); // 使用 str 变量
}

在上面的例子中,obj is string str 不仅检查 obj 是否是 string 类型,还将 obj 的值赋给变量 str,方便后续使用。

模式匹配的类型模式

is 关键字支持多种模式,包括类型模式、常量模式、逻辑模式等。

  • 类型模式:
if (obj is string)
{Console.WriteLine("obj 是字符串类型");
}
  • 常量模式:
if (obj is null)
{Console.WriteLine("obj 是 null");
}
  • 逻辑模式(C# 9.0及以上):
if (obj is string str && str.Length > 5)
{Console.WriteLine($"obj 是一个长度大于5的字符串:{str}");
}

as 的区别

is 关键字主要用于类型检查,返回一个布尔值(truefalse)。
as 关键字用于类型转换,返回目标类型的对象,如果转换失败则返回 null

  • 示例:
object obj = "Hello";// 使用 is 检查类型
if (obj is string)
{Console.WriteLine("obj 是字符串类型");
}// 使用 as 进行类型转换
string str = obj as string;
if (str != null)
{Console.WriteLine($"obj 转换为字符串后的内容是:{str}");
}

性能注意事项

is 关键字在类型检查时会进行运行时类型检查,因此可能会有性能开销。
如果只需要类型转换而不需要检查类型,建议使用 as

总结

is 关键字在C#中是一个非常强大的工具,不仅可以用于类型检查,还可以结合模式匹配实现更复杂的逻辑。根据你的需求选择合适的用法即可。


http://www.ppmy.cn/ops/163700.html

相关文章

3.激活函数:神经网络中的非线性驱动器——大模型开发深度学习理论基础

激活函数在神经网络中扮演着至关重要的角色,它为模型引入非线性因素,使得网络能够拟合复杂的数据分布,从而实现高效的特征提取与预测。本文将从实际开发角度出发,介绍激活函数的基本概念、常见激活函数(如 ReLU、GELU、…

如何结合NLP(自然语言处理)技术提升OCR系统的语义理解和上下文感知能力?

光学字符识别(OCR)技术能够快速从文档、图像中提取文本信息,目前已经广泛应用于金融、教育、医疗、物流等领域。然而,传统OCR技术的功能主要集中在字符提取和简单的结构化输出上,难以处理复杂场景中涉及的语义理解与上…

ArcGIS Pro 基于基站数据生成基站扇区地图

在当今数字化的时代,地理信息系统(GIS)在各个领域都发挥着至关重要的作用。 ArcGIS Pro作为一款功能强大的GIS软件,为用户提供了丰富的工具和功能,使得数据处理、地图制作和空间分析变得更加高效和便捷。 本文将为您…

Linux安装Redis以及Redis三种启动方式

目录树 一、安装前的软件准备二、Redis的安装三、Redis的三种启动方式!!! 1、直接启动Redis2.后台进程方式启动Redis3.通过开机启动方式 四、Window上桌面连接Linux上的Redis 一、安装前的软件准备 Xshell —— 连接Linux并操作其终端的软…

如何快速上手RabbitMQ 笔记250304

如何快速上手RabbitMQ 要快速上手 RabbitMQ,可以按照以下步骤进行,从安装到基本使用逐步掌握核心概念和操作: 1. 理解核心概念 Producer(生产者):发送消息的程序。Consumer(消费者&#xff09…

keil主题(vscode风格)

#修改global.prop文件,重新打开keil即可 # Keil uVision Global Properties File # This file is used to customize the appearance of the editor# Editor Font editor.font.nameConsolas editor.font.size10 editor.font.style0# Editor Colors editor.backgro…

windows环境执行composer install出错

现在的项目环境都是要求比较新的版本,就比如今天部署测试一个新框架遇到了下面这些问题,报错原因有以下几点: PHP版本低了,现在的新项目都是要求PHP8以上版本;指令废弃,配置文件禁用即可;切换P…

【Canny 边缘检测详细讲解】

Canny 边缘检测详细讲解 目录 Canny 边缘检测详细讲解一. Canny 边缘检测的基本原理二. 在 MATLAB 中实现 Canny 边缘检测三. 运行结果展示四. 关键参数解释五. 实验与验证六. 总结 Canny 边缘检测是一种经典的图像处理算法,广泛应用于计算机视觉领域。它通过多步骤…