重写NameValueCollection ToString

时间:2016-10-30 22:16:04

标签: c# override namevaluecollection

我已经编写了以下扩展方法来覆盖const char*

NameValueCollection.ToString

但它仍然使用默认的public static string ToString(this NameValueCollection a) { return string.Join("&", a.AllKeys.Select(k => $"{k}={a[k]}")); } 方法。

当我添加ToString关键字时,我收到错误:

  

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

当我添加override个关键字时,它表示不需要new个关键字:

  

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

1 个答案:

答案 0 :(得分:1)

如果要覆盖NameValueCollection的ToString(),则需要创建一个继承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();