확장 메서드를 처음 사용하고 무엇을 할 수 있는지 탐색했습니다.C# 확장 메서드 - 호출 개체를 반환합니다.
호출 개체를 특정 할당없이 출력에 할당 할 수 있습니까? 특별히 지정하지 않고 "Hello World! Extended!"
발생하는 foo.ExtensionTest()
를 얻을 수있는 방법이있다 .. 다음 예
public static string ExtensionTest(this string input)
{
return input + " Extended!";
}
...
var foo = "Hello World!";
var foo2 = foo.ExtensionTest(); // foo2 = "Hello World! Extended!"
foo.ExtensionTest(); // foo = "Hello World!"
foo = foo.ExtensionTest(); // foo = "Hello World! Extended!"
: 여기
설명하는 간단한 예는foo = foo.ExtensionTest()
소리는 정적 메서드 호출 현장에'이 ref' 수정을 찾고있는 것처럼 'foo.Extension();'과 같이 보입니다. 불행히도이 언어에는 현재이 기능이 없습니다. 아마도 언어 디자이너에게 추천할만한 것이 있습니까? :) 개인적으로, 나는 그것을 원하지 않을 것입니다. – Ani
@ 아니 : 하하, 안돼! 오, 이런 일이 일어날 것이라고 상상할 수 있니? 'string bar = foo; foo.DoSomething(); Console.WriteLine (ReferenceEquals (bar, foo));'... (출력 :'False', 개발자 : * WHAAAT?!? *) –
@Dan Tao : 정확합니다. 귀하의 모든 심판은 정적 방법에 속합니다. – Ani