C# ReadOnlySpan 模式
2023-01-17 10:52 作者:SunnieShine | 我要投稿
ReadOnlySpan<char>
类型的实例将可以使用模式匹配来判断内部存储的字符串信息。
1、语法
要知道,ReadOnlySpan<T>
类型是一个非常轻量级的存储集合,它类似于数组,但数组是引用类型,该类型是值类型。它可以接收很多类型的实例作为存储信息,当然,也包含 char
。因此,C# 对这个类型有特殊处理:如果是 ReadOnlySpan<char>
的话,那么可以接收字符串来赋值:
而 C# 11 开始,我们支持该类型使用字符串的模式匹配规则来匹配该类型的对象。
比如这么使用。
2、null
对于 ReadOnlySpan<char>
的奇怪表现
请一定要注意,ReadOnlySpan<char>
是值类型,但你仍然可以赋个 null
过去:
null
在这里是 char[]?
类型的对象,而对于 ReadOnlySpan<char>
s
对象是值类型,因此你不能对 ReadOnlySpan<char>
类型的实例使用 null
null
的常量模式),编译器是不知道你这个隐式转换的。这里的 s
是值类型 ReadOnlySpan<char>
类型的变量,而它既然是值类型,就永远不可能为 null
。因此,is null
将永远返回 false