C\#확장 방법의 사용

3587 단어 c#확장 방법
링크

C\#3.0 버 전에 서 확장 방법 에 대한 지원 을 제공 합 니 다.확장 방법 은 존재 하 는 클래스 에 새로운 방법 을 추가 하여 이러한 기능 을 확장 하 는 데 사 용 됩 니 다.가장 중요 한 것 은 기 존 클래스 에서 키 클래스 를 파생 시 킬 필요 가 없습니다.파괴 적 인 수정 류 의 기 존 코드 골격 도 필요 없고 재 컴 파일 은 말 할 것 도 없습니다.확장 방법 은 코드 의 가 독성 과 확장 기능 을 제공 할 수 있 습 니 다.
.NET 프레임 워 크 에서 가장 흔히 볼 수 있 는 확장 방법 은 Linq 표준 조회 작업 을 포함 합 니 다.이러한 확장 방법 은 System.collections.IEnumerable 과 System.collections.Generic.IEnumerable의 조회 능력 을 크게 확장 시 켰 습 니 다.다음 그림:

이제 확장 방법 을 알 게 되 었 습 니 다.이 기술 로 존재 하 는 class 나 interface 에 더 많은 실 용적 인 방법 을 추가 할 수 있 습 니 다.하위 클래스 에서 추가 적 인 방법 을 추가 하지 말 아야 합 니 다.MSDN 에 서 는 확장 방법 은 기 존의 클래스 에 방법 을 추가 할 수 있 습 니 다.하위 클래스 를 만 들 거나 재 컴 파일 하거나 다른 형식의 수정 이 필요 하지 않 습 니 다.확장 방법 은 특수 한 정적 방법 입 니 다.그것 을 호출 할 때 마치 확장 클래스 의 원생 방법 인 것 같 습 니 다.
본질 적 으로 확장 방법 은 특수 한 정적 방법 이 라 고 할 수 있 습 니 다.이미 존재 하 는 클래스 에 새로운 방법 을 추가 할 수 있 습 니 다.비록 이 확장 류 의 소스 코드 에 접근 할 수 있 는 권한 이 없 더 라 도 확장 방법 은 서명 중의 첫 번 째 매개 변수 가 this 인 것 을 제외 하고 정적 방법 과 똑 같 습 니 다.모든 클래스 에 임의의 확장 방법 을 추가 할 수 있 습 니 다.🐂👃이 확장 방법의 특성 은 값 형식 에 도 작용 할 수 있다.
확장 방법 을 사용 할 때 아래 의 몇 가지 점 을 기억 하 세 요.
4.567917.확장 방법 은 반드시 정태 적 인 방법 이 어야 한다.4.567918.
  • 확장 방법 은 static class 에 있어 야 합 니 다.클래스 의 이름 은 상관 없습니다
  • 4.567917.확장 방법의 첫 번 째 매개 변 수 는 반드시 this 이 고 그 다음 에 확장 해 야 할 유형 을 따라 갑 니 다.4.567918.
    확장 방법의 이름과 확장 클래스 의 어떤 방법 이 이름 을 바 꾸 면 확장 방법 은 효력 을 잃 고 영원히 호출 되 지 않 습 니 다.
    C\#확장 방법 사용 하기
    이 절 에서 우 리 는 C\#를 어떻게 사용 하여 확장 방법 을 실현 하 는 지 토론 합 니 다.아래 의 코드 목록 은 C\#의 확장 방법 이 어떻게 생 겼 는 지 보 여 줍 니 다.
    
      public static class StringExtensions
      {
        public static bool IsNumeric(this string str)
        {
          double output;
          return double.TryParse(str, out output);
        }
      }
    확장 방법의 첫 번 째 매개 변 수 를 주의 하 십시오.앞에서 논 의 했 듯 이 모든 확장 방법 은 정적 이 어야 합 니 다.또한 매개 변수 전에 this 키 워드 를 설명해 야 합 니 다.예 를 들 어 위의 예 와 같이 컴 파일 러 에 게 string 류 에서 IsNumeric 방법 을 확장 했다 는 것 을 알려 주 는 것 과 같 습 니 다.
    다음은 string 클래스 에서 IsNumeric 방법 을 어떻게 사용 하 는 지 살 펴 보 겠 습 니 다.
    
        static void Main(string[] args)
        {
          string str = "100";
    
          if (str.IsNumeric()) Console.WriteLine("The string object named str contains numeric value.");
    
          Console.Read();
        }
    위의 프로그램 을 실행 하면 콘 솔 에서 출력 합 니 다:The string object named str contains numeric value.
    확장 방법 을 사용 할 수 있 습 니 다.이 기술 은 클래스 에 방법 을 추가 하 는 형식 으로 클래스 의 기능 을 강화 할 수 있 습 니 다.수정,파생 또는 원래 의 유형 을 재 컴 파일 할 필요 가 없습니다.앞에서 언급 한 바 와 같이 확장 방법 도 값 유형 에 응용 할 수 있 습 니 다.다음 에 저 는 하나의 예 를 통 해 이것 이 어떻게 실현 되 는 지 검증 하 겠 습 니 다.
    다음은 Integer Extensions 클래스 를 정 의 했 습 니 다.그 안에 IsEven 확장 방법 이 있 습 니 다.입력 한 매개 변수 가 짝수 라면 이 방법 은 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.
    
      public static class IntegerExtensions
      {
        public static bool IsEven(this int i)
        {
          return ((i % 2) == 0);
        }
      }
    다음 코드 는 integer 형식 에서 이 확장 방법 을 어떻게 호출 하 는 지 보 여 줍 니 다.
    
        static void Main(string[] args)
        {
          int n = 2;
    
          if (n.IsEven()) Console.WriteLine("The value of the integer is even.");
        }
    더 많은 고 품질 건어물:나의 GitHub 참조:https://www.infoworld.com/art
    이상 은 C\#확장 방법의 사용 에 대한 상세 한 내용 입 니 다.c\#확장 방법 에 대한 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기