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

为何StringExtensions类仅RemoveBetweenTags方法可访问,其余方法不可用?

问题原因分析

你的LeftOf和RightOf方法是普通静态方法,而RemoveBetweenTags是扩展方法(参数前带有this关键字),两者的调用规则完全不同:

  • RemoveBetweenTags因为是扩展方法,可直接通过字符串实例调用,比如:

    string test = "abc<tag>content</tag>def";
    string extracted;
    var result = test.RemoveBetweenTags("<tag>", "</tag>", out extracted);
    
  • LeftOf和RightOf没有this修饰参数,只能通过类名直接调用,不能用字符串实例调用(如果你尝试用实例调用就会提示无法访问):

    // 正确调用方式
    string test = "abc-def";
    var leftPart = StringExtensions.LeftOf(test, "-");
    var rightPart = StringExtensions.RightOf(test, "-");
    
    // 错误调用方式(会提示无法访问)
    // var leftPart = test.LeftOf("-");
    

如果想让LeftOf和RightOf也能像扩展方法一样通过字符串实例调用,只需给第一个参数加上this关键字:

public static string LeftOf(this string input, string delimiter, StringComparison sc = StringComparison.OrdinalIgnoreCase)
{
    int index = input.IndexOf(delimiter, sc);
    if (index >= 0) return input.Substring(0, index);
    else
        return input;
}

public static string RightOf(this string input, string delimiter, StringComparison sc = StringComparison.OrdinalIgnoreCase)
{
    int index = input.IndexOf(delimiter, sc);
    if (index >= 0) return input.Substring(index + delimiter.Length);
    else
        return string.Empty;
}

修改后就能用test.LeftOf("-")这类方式调用了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:50:06