您当前所在位置:首页攻略使用ReadOnlySpan实现高性能和零内存分配的LikeString函数

使用ReadOnlySpan实现高性能和零内存分配的LikeString函数

更新:2024-06-13 11:57:05编辑:游戏资讯归类:攻略

继上一篇文章"在.NET Core,除了VB的LikeString,还有其它方法吗?(四种LikeString实现分享)"分享了四种实现方式,但这些实现方式在执行性能和内存分配性能上并不令人满意。

那么是否有更好的实现方法呢?答案是肯定的。

今天我们将介绍 ReadOnlySpan<T> ,这是一个非常实用的结构类型。它是在 .NET Core 2.1 中新引入的类型,与它一同被引入的类型还有:

  • System.Span : 以类型安全和内存安全的方式表示任意内存的连续部分;
  • System.ReadOnlySpan : 表示任意连续内存区域的类型安全和内存安全只读表示形式;
  • System.Memory : 表示一个连续的内存区域;
  • System.ReadOnlyMemory : 类似 ReadOnlySpan ,此类型表示内存的连续部分,但它不是 ByRef 类型;

    注: ByRef 类型指的是 ref readonly struct

接下来,让我们来看看如何使用 ReadOnlySpan 实现高性能和零内存分配的 LikeString 函数吧!

#nullable enable

using System;

namespace AllenCai
{
    /// <summary>
    /// 这是一个模仿Microsoft.VisualBasic.CompilerServices.LikeOperator.LikeString方法,<br />
    /// 实现支持*和?通配符和支持忽略大小写规则以及区域无关性的匹配。<br />
    /// 该实现的目的是为了减少内存分配,提高性能。
    /// </summary>
    public class ZeroMemAllocLikeOperator
    {
        // 省略部分代码
    }
}

PS: 以上代码在 .NET Standard 2.1 项目使用,可直接编译通过。

在 .NET Standard 2.0 项目中,需要额外引入 System.Memory 这个 NuGet 包,且需要将 LangVersion (C#语言版本)更改为 8.0 或更高(通常使用 default latest 也可以)。

以上就是电脑114游戏给大家带来的关于使用ReadOnlySpan实现高性能和零内存分配的LikeString函数全部内容,更多攻略请关注电脑114游戏。

电脑114游戏-好玩游戏攻略集合版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

《匹诺曹的谎言》将推出艺术设定集,现已开启全球预购! 冷眸软件库 最新链接入口