2016-10-30 2 views
0

Ich habe die folgende Erweiterung Methode geschrieben, um die NameValueCollection.ToString außer Kraft zu setzen:Zwingende Namevaluecollection ToString

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

Aber es immer noch verwendet die Standard ToString Methode.

Wenn ich das override Stichwort hinzufügen bekomme ich einen Fehler:

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

Und wenn ich new Stichwort hinzufügen heißt es, dass new Schlüsselwort nicht benötigt wird:

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

Antwort

1

Wenn Sie ToString außer Kraft setzen möchten() für NameValueCollection, müssen Sie ein neues Objekt erstellen, das NameValueCollection

erbt 10

Sie füllen Ihre Sammlung in Ihrer neuen CustomValueCollection und Sie können ToString() aufrufen.

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

string collString = coll.ToString(); 
+0

Nun, ich hatte gehofft, die Standard-Tostring-Methode zu ändern, aber dies scheint der einzige Weg zu sein. Danke vielmals. –