Unity3d C# toolba 사용해보기

C#의 확장 메소드 에대해서 알아보겠습니다.





안녕하세요 이번시간에 알아볼 것은  C#의 클래스 중 확장 메소드입니다.

클래스와 메소드 관련한 내용과 알아야 할 사항들이 정말 많은데요.. 알아두면 도움이 될만한 것 같아 정리해보려고 합니다.  

자주사용이 될 것 같지는 않지만요.. 사실 개발자들이야 자기가 사용하기 익숙한 구문만 사용하게 되니까요.. 

저도 델파이를하면서..  while문같은거는 잘 안 쓰게 되더라고요.. for 문으로 거의 되니까요..
(너무 코딩을 저급하게 하다보니..)

확장클래스라고 하면.. 뇌를자극하는 C#에서는 상속을 받아 내용을 추가하는 오버라이딩과는 전혀 다른 것으로 설명하고 있습니다.

사용하는 방법도 까다롭네요..

확장클래스


뭐.. 이런형식인데요 static으로 한정해줘야하고 this라는 키워드를 반드시 써 줘야하고.. 합니다.

이런걸로 무엇을 할 수 있나 했더니..

this 대상형식 식별자 이 부분에.. 즉.. 아랫부분에서 확장메 소드를 사용해서 작업을 하는 메소드가 되겠죠..    빨간 부분의 영역을   위에 Method를 태워서 나온 결과 값을 받아올 수가 있습니다.

만약 확장메소드에.. 입력받은 숫자를 곱해서 제곱을 구하는 Method로 구현하였다면..

번거롭게 태워서 받아오는 코딩을 넣어야하는 것 없이 바로 결과 값을 리턴받을 수 있다는 것입니다. 

이게 얼마나 유용할지는 글쎄요.. 많이 아는 사람에게는 정말 별것 아니지만 코딩양을 상당히 줄여주는 효과가 있지 않을까 생각이 드네요..  하지만.. 모르는 사람에게는 가독성이 정말 떨어질 수 밖에 없겠습니다.



C# ExtensionMethod



위에 예제는 책에 나와있었던 것인데요 제곱근을 구하는 방법을 확장 메소드를 이용하여 구현하는 것 입니다.

제곱근을 구할 수 있는 여러가지 방법이 있겠지만.. 위의 방법을 활용한다면 코딩을 적게 하고 효율적으로 할 수 있겠네요…

또한 using 절에 확장클래스의 이름을 포함시키면서 위의 예제에서 보는것처럼..

숫자. Square() 라던가  숫자.Power(10)  처럼 코딩을 할 수 있는것입니다. 문법에 위배되는 게 아니죠.. 정말 어색하기는한데..  빨리 이런 스타일에 익숙해질 필요가 있겠네요..

아래는 책에 나온예제인데요... 문제가뭐냐면.. 문자열을 확장 Method를 사용하여 뒷부분에 입력받은 매개변수가 찍히도록 하는것입니다. 정답은없고 결과만 있죠...^^;
이렇게 하면 될것같네요.. 이게 100%맞는 정답이 아닐 수 있죠 방법은 여러가지가 있으니까요..

  [확장클래스안에 선언한 Append메소드..]

       public static string Append(this string myString, string myString2)
       {
           string result = myString;
           return result + myString2;
       }

…...
[메인클래스의 출력부분..]
           string hello = "Hello";
           Console.WriteLine(hello.Append(",World!") );

결과출력시  Hello ,World! 가 콘솔창에 찍힙니다.


이상으로 C#에서의 확장클래스에 대해서 알아봤습니다. 감사합니다.













댓글