You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何将自定义字符串方法改造为可像string内置方法一样调用

实现字符串自定义清理方法的链式调用方案

你需要将现有方法封装为string类型的扩展方法,即可实现和.NET内置字符串方法一致的调用体验,具体调整步骤如下:

代码调整方案

1. 定义静态扩展方法容器类

创建一个独立的静态类(和控制台项目的Program类平级,不要嵌套在其他类内部),专门用于存放字符串相关的扩展方法:

using System;
using System.Text.RegularExpressions;

// 静态类是扩展方法的必须容器
public static class StringExtensions
{
    // 预编译正则实例,避免每次调用重复初始化,提升性能
    private static readonly Regex _multiWhitespaceRegex = new Regex(@"\s{2,}", RegexOptions.Compiled);

    // 扩展方法:第一个参数加this修饰,代表对string类型做扩展
    public static string ToFriendlyDOSNameString(this string input)
    {
        // 新增空值兼容,避免空引用异常,符合内置方法的行为逻辑
        if (string.IsNullOrEmpty(input)) return input;
        
        input = input.Normalize()
            .Replace("\\", " ")
            .Replace("/", " ")
            .Replace("\"", " ")
            .Replace("*", " ")
            .Replace(":", " ")
            .Replace("?", " ")
            .Replace("<", " ")
            .Replace(">", " ")
            .Replace("|", " ")
            .Replace("!", " ")
            .Replace(".", " ")
            .Replace("'", " ")
            .Trim();
        
        // 直接用正则替换所有连续多空格为单空格,省去原有循环逻辑,性能更优
        return _multiWhitespaceRegex.Replace(input, " ");
    }
}

2. 调用方式

扩展方法定义完成后,即可完全按照你期望的形式调用,和string.Trim()等内置方法用法完全一致:

string example = "Some Random/Text:With<Illegal>Chars!  And  Multi  Spaces ";
example = example.ToFriendlyDOSNameString();
// 处理后结果:Some Random Text With Illegal Chars And Multi Spaces

注意事项

  • 如果你将StringExtensions类放在了自定义命名空间下,需要在使用扩展方法的代码文件顶部添加对应的using 你的命名空间;语句,才能正常调用扩展方法。

内容的提问来源于stack exchange,提问作者Mxpsth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:27:04