2016-10-30 2 views
0

은 내가 NameValueCollection.ToString 오버라이드 (override) 할 수있는 다음과 같은 확장 메서드를 작성했습니다 :재정 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를 오버라이드 (override) 해,하려면()를 NameValueCollection으로 변경하려면 상속받은 새 객체를 만들어야합니다. NameValueCollection

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

새 CustomValueCollection에 컬렉션을 채우고 ToString()을 호출 할 수 있습니다.

+0

글쎄 기본 토 스트링 방법을 변경하고 싶었지만 이것이 유일한 방법 인 것 같습니다. 고마워. –

관련 문제