如何在c#中向String添加扩展方法

时间:2013-11-25 11:30:00

标签: c# string extension-methods

如果我有字符串:string a = "Hello there"

我希望我能做到:a.ReplaceThereSubstring()

并期待a = "Hello here"

我试过这样:

public static class ChangeString
    {
        public static string ReplaceThereSubstring(this String myString)
        {
           return myString.Replace("there","here");
        }
    }

但它总是返回null。

3 个答案:

答案 0 :(得分:2)

在这种情况下,你应该这样做来运行你的代码:

string a = "Hello there"
a = a.ReplaceThereSubstring();

您无法在扩展方法中替换字符串的值,因为字符串不可变

答案 1 :(得分:2)

您无法修改现有字符串,因为strings are immutable

因此像myString.Replace("there", "here");这样的表达式不会改变myString实例。

您的扩展方法实际上是正确的,但您应该以这种方式使用它:

a = a.ReplaceThereSubstring();

答案 2 :(得分:1)

您需要分配结果:

string b = a.ReplaceThereSubString();