关于c#:静态方法到.Net字符串对象

static method to .Net string object

本问题已经有最佳答案,请猛点这里访问。

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

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


TLDR:

不。

更多:

扩展方法必须接收一个实例才能处理:

1
2
3
4
void static  Foo(this string s)
{
    // Do something
}

没有现成的字符串语法。


不,这是不可能的,扩展方法只是句法上的糖。它将被编译器转换成类似于StringExtensions.FormatHeader(..);的东西。您在这里所能做的最好的事情就是创建一个类似helper类的类来为您处理这个问题。

1
2
3
4
5
6
7
public class StringHelper
{
    public static string FormatHeader(string str1, string str2, string str3, FormatOption formatOption)
    {
        throw new NotImplementedException();
    }
}


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