0

我编写了以下扩展方法来覆盖NameValueCollection.ToString

public static string ToString(this NameValueCollection a)
{
    return string.Join("&", a.AllKeys.Select(k => $"{k}={a[k]}"));
}

但它仍然使用默认ToString方法。

添加override关键字时出现错误:

'ToString(NameValueCollection)':找不到合适的方法来覆盖

当我添加new关键字时,它说new不需要关键字:

'ToString(NameValueCollection)' 不会隐藏继承的成员。new 关键字不是必需的。

4

1 回答 1

1

如果要覆盖 ToString() NameValueCollection,则需要创建一个继承的新对象 NameValueCollection

public class CustomNameValueCollection:NameValueCollection
{
     public override String ToString()
     {
         return string.Join("&", AllKeys.Select(k => $"{k}={this[k]}"));
     }
}

您在新的 CustomValueCollection 中填写您的集合,然后可以调用 ToString()。

CustomValueCollection coll = new CustomValueCollection();
coll.Add("key", "value");

string collString = coll.ToString();
于 2016-10-30T22:33:07.363 回答