【问题标题】:static method to .Net string object [duplicate].Net字符串对象的静态方法[重复]
【发布时间】:2016-03-17 13:29:32
【问题描述】:

是否可以向 .Net string 类添加额外的静态方法,以便我可以编写:

var header = string.FormatHeader(str1,str2,str3,formatOption);

【问题讨论】:

  • 因为不是很清楚:如果您的意思是“我可以添加一个行为类似于string 类的静态方法的方法”,那么不能。如果您想要一个行为类似于实例方法的方法,请参阅 Arkadiusz K 的回答。
  • 我的意思是字符串类的静态方法
  • stackoverflow.com/questions/249222/… 能解答您的问题吗?
  • 是的@Andy,它回答了。谢谢

标签: c# .net extension-methods


【解决方案1】:

TLDR:

没有。

更多:

扩展方法必须接收一个实例才能工作:

void static  Foo(this string s)
{
    // Do something
}

没有语法只用于字符串。

【讨论】:

  • 扩展方法必须声明为static
  • 干杯@Andy。更正它(我在现实生活中也总是忘记这一点!)
【解决方案2】:

不,这是不可能的,扩展方法只是语法糖。它会被编译器转换成StringExtensions.FormatHeader(..); 之类的东西。您可以在这里做的最好的事情是创建一个类似帮助类的东西来为您处理这个问题。

public class StringHelper
{
    public static string FormatHeader(string str1, string str2, string str3, FormatOption formatOption)
    {
        throw new NotImplementedException();
    }
}

【讨论】:

    【解决方案3】:

    不,您不能向字符串类添加新的静态方法。如果没有逻辑类可以成为其成员,则最好编写自己的 StringUtils 类或 HeaderUtils 类或其他东西。

    【讨论】:

      猜你喜欢
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 2019-07-14
      • 2016-11-17
      相关资源
      最近更新 更多