我已经编写了以下扩展方法来覆盖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中)'不会隐藏继承的成员。新关键字不是必需的。
答案 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();