Extension 클래스를 통해 기존 클래스를 확장하기

C# 3.0 에서부터 새로 제공되는 기능으로 Extensions 라는 것이 있다.

이 것은 기존에 정의되어 있는 클래스를 확장할 수 있도록 해주는 방법이라고 할 수 있다. 백문이 불여일견이니 어떻게 하는지 한번 살펴보도록 하겠다.

일단 먼저 기본으로 제공되는 String에 현재의 문자열의 길이를 리턴해주는 GetStringLength() 라는 함수를 제공하도록 해보겠다.

프로젝트를 하나 생성하고 StringExtensions 라는 이름의 클래스를 하나 추가한 후 아래와 같이 코딩하도록 하자.

[code lang=”csharp”]
namespace ExtensionMethodTest
{
public static class StringExtensions
{
public static int GetTextLength(this string s)
{
return s.Length;
}
}
}
[/code]

이와 같이 코딩한 후 폼을 하나 추가하고 폼에서 String 변수를 하나 생성해서 아래와 같이 코딩하도록 하자.

[code lang=”csharp”]
using System;
using System.Windows.Forms;

namespace ExtensionMethodTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

}
[/code]

위와 같이 string 함수에 위에서 정의한 함수가 확장되어 들어가 있는 것을 볼 수 있다.

zemna

Programmer/Web/Mobile/Desktop

You may also like...

Leave a Reply