80. 확장메서드
.NET프로그래밍/C# 3.5 SP1 2009. 8. 19. 12:03 |// 확장메서드 : 기존 클래스의 외부에서 메서드 추가
using System;
public class Calc
{
public int Plus(int a, int b)
{
return (a + b);
}
}
public static class CalcExtension // Calc클래스의 외부에서 Minus메서드 확장
{
public static int Minus(this Calc c, int a, int b) // 문법이다. static클래스에 static메서드, 첫번째 매개변수로 this, 두번째 자리에 확장할 클래스(Calc), 세번째 자리에 내가 원하는 변수명
{
return (a - b);
}
}
public class 확장메서드
{
public static void Main()
{
Calc c = new Calc();
Console.WriteLine(c.Plus(3, 5)); // 8
Console.WriteLine(c.Minus(3,5)); // -2
string s = "확장메서드";
Console.WriteLine("{0}", s.ShowTitle()); // ***확장메서드*** 로 출력시킴
int i = -10;
Console.WriteLine("절대값 : {0}", i.Abs()); // (메서드)확장
}
}
// CLR에 이미 만들어져 있는 String 클래스 확장
public static class StringExtension
{
public static string ShowTitle(this String s)
{
return "***" + s + "***";
}
}
// Int32 구조체에 Abs() 메서드를 추가(확장)
public static class Int32Extension
{
public static int Abs(this Int32 i)
{
return (i < 0) ? -i : i;
}
}
'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글
82. IEnumerable인터페이스 (0) | 2009.08.19 |
---|---|
81. 람다식 (0) | 2009.08.19 |
(테스트) 학점 계산 프로그램 (0) | 2009.08.19 |
79. 초기화자(Initializer) (0) | 2009.08.18 |
알고리즘 - 12. 그룹(Group) (0) | 2009.08.18 |