코드 다음 사항을 고려 클래스의 오버로드 확장 방법 :전화
class Program
{
static void Main(string[] args)
{
var t = new Test();
t.ToString();
Console.WriteLine(t.ToString());
Console.ReadKey();
}
}
public class Test
{
}
public static class TestHelper
{
public static string ToString(this Test test)
{
return "HashValue of test instance: " + test.GetHashCode();
}
}
어떻게 그냥 내 오버로드를 호출 할 수있는 확장 메서드 (적어도 VS는 ToString()
이 +1 overload
을 가지고 나에게 말한다)? Test
이 (.NET Framework afaik의 모든 클래스를 따라) inherites부터 object
까지입니다. object
클래스의 결과는 ToString()
이고 <namespace-wher-the-class-is-locatet.<class-name>
과 같은 결과를 반환합니다. 그러나 다른 매개 변수가없는 ToString()
구현을 원한다면 어떻게해야합니까?
그리고 아니요, 내 클래스에 ToString()
을 구현하고 싶지 않습니다. 나는 그것을 확장 방법으로하고 싶다. (SecureString이 관리되지 않는 암호화에서 암호화 된 상태로 다시 변환되도록 확장 됨)
미리 감사드립니다.
나는 이것에 어떤 감각을 볼 수 없다. 누군가가 이것이 어떻게 유용 할 수 있는지를 설명 할 수 있는가? – Sebi
내가 쓴 것처럼 : 예를 들어 ** System.Securety.SecureString **의 확장으로 읽을 수있는 문자열로 다시 변환 하시겠습니까? – Radinator