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 に答える