기존의 클래스를 확장하는 기법
C#에서는 int, float형도 클래스이기 때문에 이를 확장하는 메소드를 넣을 수 있다.
메소드를 선언하되, static 한정자로 수식해야 한다. 그리고 첫 번째 매개변수는 반드시 this 키워드와 확장하려는 클래스의 인스턴스여야 한다.
public static class 클래스이름
{
public static 반환형식 메소드명 (this 형식 이름, 매개변수 목록)
{
}
}
FloatExtension 예시
public static class FloatExtension
{
public static float Square(this float myFloat)
{
return myFloat * myFloat;
}
public static float Power(this float myFloat, int exp)
{
float ret = myFloat;
for(int i=1; i<exp; i++){
ret *= myFloat;
}
return ret;
}
}
테스트
class MainApp
{
static void Main()
{
float f = 3.5f;
Console.WriteLine(f.Square());
Console.WriteLine(f.Power(3));
Console.WriteLine(2.75f.Square());
Console.WriteLine(2.75f.Power(3));
}
}
참조
뇌를 자극하는 C# 5.0 프로그래밍, 박상현, 한빛미디어
'아카이빙 > C#' 카테고리의 다른 글
[C#] 인터페이스 (0) | 2018.06.18 |
---|---|
[C#] 구조체 (0) | 2018.06.18 |
[C#] 오버라이딩 (0) | 2018.06.18 |
[C#] 형변환과 is, as (0) | 2018.06.18 |
[C#] this() 생성자 (0) | 2018.06.18 |