-
4/18 : TIL | 확장메서드, namespace class method 이해Today I Learned/C# 2023. 4. 18. 22:35728x90
확장 메서드
public static class ConditionExtentions { public static bool vIsNull(this bool? source) //this 키워드로 확장하고자 하는 키워드 {
확장메서드는 static class 안에 static method로 정의된다.
확장메서드는 첫번째 파라미터로 항상 사용될 클래스 타입을 지정한다. 이 때, 클래스명 바로 앞에는 항상 this를 써준다.
이를 통해 클래스 외부에서도 마치 그 클래스의 인스턴스 메서드인 것처럼 사용할 수 있다.
※ 위 문장을 예시를 들어 쉽게 설명하자면,
>> .Random 클래스는 System 네임스페이스 에 속해있다. 그래서 using System;을 해줘야 쓸 수 있다.
System 네임스페이스
일반적으로 사용되는 값과 참조 데이터 형식, 이벤트와 이벤트 처리기, 인터페이스, 특성, 예외 처리 등을 정의하는 핵심 클래스 및 기본 클래스가 포함되어 있습니다.
learn.microsoft.com
>> Random.Next 메서드는 Random 클래스에 속해있다.
Random.Next 메서드 (System)
임의의 정수를 반환합니다.
learn.microsoft.com
우리가 만드는 확장메서드도 이렇게 다양한 연산이나 작업을 수행할 수 있다.
C#의 기본클래스로 내가 원하는 작업을 할 수 없다면, 메서드를 만들어서 수행할 수 있다. => 확장메서드
using System; using MyExtension; namespace MyExtension { public static class IntegerExtension { public static int Square(this int MyInt) { return MyInt * MyInt; } public static int Power(this int MyInt,int exponent) { int result = MyInt; for (int i = 1; i < exponent; i++) { result = result * MyInt; } return result; } } } namespace ExtensionMethod { class MainApp { public static void Main(string[] args) { Console.WriteLine($"4 * 4 = {4.Square()}"); Console.WriteLine($"3 ^ 3 = {3.Power(3)}"); Console.WriteLine($"2 ^ 8 = {2.Power(8)}"); } } }
'Today I Learned > C#' 카테고리의 다른 글
4/19 : TIL | 클래스, 오버라이딩의 대표 .ToString (0) 2023.04.19 4/19 : TIL | 메소드 Method, 매개변수와 인수, ref out (0) 2023.04.19 4/18 : TIL | Object, 참조/값 형식, 박싱 - 언박싱의 개념 (0) 2023.04.18 4/17 : TIL | [구름LEVEL 1단계] 고장난 컴퓨터 / 문제추천안함.. (0) 2023.04.17 4/17 : TIL | [구름 LEVEL 1단계] 정사각형의 개수 (0) 2023.04.17