아카이빙/C#

[C#] 확장 메소드 (Extension Method)

셩님 2018. 6. 18. 06:52

[C#] 확장 메소드 (Extension Method)

  • 기존의 클래스를 확장하는 기법

  • 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