2016-10-30 10 views
0

私はNameValueCollection.ToStringを上書きするには、以下の拡張メソッドを書かれている:オーバーライドNameValueCollectionのToStringメソッドの

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

をしかし、それはまだデフォルトToString方法を使用しています。

私はエラーを取得するoverrideキーワードを追加:

'ToString(NameValueCollection)': no suitable method found to override

を私はnewキーワードを追加するとき、それはnewキーワードが必要とされていないことを言う:

'ToString(NameValueCollection)' does not hide an inherited member. The new keyword is not required.

答えて

1

あなたはToStringメソッドをオーバーライドする場合()をNameValueCollectionの場合は、継承する新しいオブジェクトを作成する必要がありますNameValueCollection

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

新しいCustomValueCollectionでコレクションを塗りつぶし、ToString()を呼び出すことができます。

+0

私はデフォルトのtostringメソッドを変更したいと考えていましたが、これが唯一の方法だと思われます。どうもありがとう。 –

関連する問題