我一直在尝试做一个"字符串清理过程"的方法。并希望像使用简单的string.Trim()
或string.Normalize()
那样使用它。
public string ToFriendlyDOSNameString(string input)
{
Regex whitespaces = new Regex(".*?([ ]{2,})");
input = input.Normalize().Replace("\", " ").Replace("/", " ").Replace(""", " ")
.Replace("*", " ").Replace(":", " ").Replace("?", " ")
.Replace("<", " ").Replace(">", " ").Replace("|", " ")
.Replace("!", " ").Replace(".", " ").Replace("'", " ").Trim();
string clone = input;
foreach (Match match in whitespaces.Matches(input))
{
clone = clone.Replace(match.Groups[1].Value, " ");
}
input = clone;
return input;
}
我正在寻找一种方法来使用这个方法如下:
string example = "Some Random Text";
example = example.ToFriendlyDOSNameString();
作为参考,我目前在一个控制台应用程序上使用这个方法,这个方法被放置在"主方法"的正下方,我不确切地知道我应该在哪里放置一个方法来让它具有我想要的行为…
您的扩展方法中缺少一些东西:
- 方法需要为
static
; string
参数应使用this
关键字。
例子:
public static class StringExtensions
{
public static string ToFriendlyDosNameString(this string input)
{
// Your logic.
}
}
更多信息:
扩展方法(c#编程指南)
public static class Utilities {
public static string ToFriendlyDOSName(this string str) {
str = "new friendly value";
// modify the value according to your logic
return str;
}
}
那么你可以像刚才提到的那样使用
string myName = "unfriendly name";
myName.ToFriendlyDOSName();