해결된 질문
작성
·
71
답변 1
1
안녕하세요~ 정적 클래스의 "첫 번째 매개변수"에 사용되는 this 키워드는 다음에 정의된 타입에 대해서"확장 함수를 정의하겠다"는 특별한 의미를 지닙니다.
따라서 아래와 같이 사용할 수 있습니다.
// 정적 클래스
static class MyExtension
{
// 확장 메서드 정의
public static void Print(this string text)
{
Console.WriteLine(text);
}
}
string name = "John";
name.Print(); // 확장 함수 사용
만약 this 키워드가 없다면?
// 정적 클래스
static class MyExtension
{
// 일반 정적 메서드 정의
public static void Print(string text)
{
Console.WriteLine(text);
}
}
string name = "John";
// name.Print(); // 사용이 불가능해요!!!
MyExtension.Print(name); // 이렇게 사용해야 합니다.
그리고 this 다음에 나오는 타입이 int 라면 int 타입에 대해서 확장 함수가 사용이 가능합니다.
// 정적 클래스
static class MyExtension
{
// int 타입에 대한 확장 메서드 정의
public static bool IsEven(this int number)
{
return number % 2 == 0;
}
}
int num = 4;
if (num.IsEven())
{
Console.WriteLine($"{num}은(는) 짝수입니다.");
}
else
{
Console.WriteLine($"{num}은(는) 홀수입니다.");
}
아래 코드는 사용이 불가능합니다.
string name = "John";
name.IsEven(); // 사용 불가능!!
이상입니다. ^^
또 궁금한 점이 있으시다면 언제든 질문 주세요. 감사합니다.
와우 감사합니다! 궁금증이 해결되었습니다! 👍