매개 변수를 사용하지 않는 확장 메서드를 만들 수 있습니까? 확장 메서드를 처음 사용하고 매개 변수를 사용하는 경우에만 보았습니다. RB Whitaker's C# tutorial 가입일C# 매개 변수없는 확장 메서드
:
public static class StringExtensions
{
private static Random random = new Random();
public static string ToRandomCase(this string text)
{
string result = "";
for (int index = 0; index < text.Length; index++)
{
if (random.Next(2) == 0)
{
result += text.Substring(index, 1).ToUpper();
}
else
{
result += text.Substring(index, 1).ToLower();
}
}
return result;
}
}
또한 MSDN에서 :
는 "그들의 첫번째 파라미터 메소드가 동작하고, 상기 파라미터는 이 개질제 앞에는 유형 지정한다."
이 두, 특히 각 사이트의 코드 예제 (하나 여기에 게시)이 매개 변수는 이 키워드를 연결하는 데 사용되기 때문에, 그 확장 방법은 적어도 하나 개의 매개 변수가 있어야합니다 표시하는 것, to 메소드를 사용하여 클래스 나 클래스의 확장자로 등록 할 수 있습니다. 예를 들어,
public static StringExtension(this String a) {/*stuff*/}
(이 또한 확장 메서드의 첫 번째 매개 변수가 확장 년대 클래스의 인스턴스를 수용해야한다는 것을 의미 다음의 경우,이다, 그렇다면 아마 잘못입니다.)
왜 매개 변수없는 확장 방법을 원하십니까? 그러면 그게 무슨 연장이 될까요? –
Console.Read()와 같은 매개 변수를 사용하지 않는 표준 라이브러리의 모든 메서드처럼 작동한다고 생각했습니다. 질문은 매개 변수없이 확장 메서드를 정의하고 Console.MyExt()와 같이 (이론적으로) 호출 할 수 있음을 의미했습니다. 그러나 나는 그렇지 않다는 것을 안다. –
@Stopforgettingmyaccounts ... 확장 메소드는 * 인스턴스 *가 필요하지만'Console'은 클래스이므로, Console.MyExt와 같은 정적 메소드로 사용할 수있는 확장 메소드를 작성할 수 없다는 것에주의하십시오.)'. [기존 고정 클래스에 확장 메서드를 추가 할 수 있습니까?] (http://stackoverflow.com/questions/249222/can-i-add-extension-methods-to-an-existing-static-class) –