C\#확장 방법의 사용
C\#3.0 버 전에 서 확장 방법 에 대한 지원 을 제공 합 니 다.확장 방법 은 존재 하 는 클래스 에 새로운 방법 을 추가 하여 이러한 기능 을 확장 하 는 데 사 용 됩 니 다.가장 중요 한 것 은 기 존 클래스 에서 키 클래스 를 파생 시 킬 필요 가 없습니다.파괴 적 인 수정 류 의 기 존 코드 골격 도 필요 없고 재 컴 파일 은 말 할 것 도 없습니다.확장 방법 은 코드 의 가 독성 과 확장 기능 을 제공 할 수 있 습 니 다.
.NET 프레임 워 크 에서 가장 흔히 볼 수 있 는 확장 방법 은 Linq 표준 조회 작업 을 포함 합 니 다.이러한 확장 방법 은 System.collections.IEnumerable 과 System.collections.Generic.IEnumerable
이제 확장 방법 을 알 게 되 었 습 니 다.이 기술 로 존재 하 는 class 나 interface 에 더 많은 실 용적 인 방법 을 추가 할 수 있 습 니 다.하위 클래스 에서 추가 적 인 방법 을 추가 하지 말 아야 합 니 다.MSDN 에 서 는 확장 방법 은 기 존의 클래스 에 방법 을 추가 할 수 있 습 니 다.하위 클래스 를 만 들 거나 재 컴 파일 하거나 다른 형식의 수정 이 필요 하지 않 습 니 다.확장 방법 은 특수 한 정적 방법 입 니 다.그것 을 호출 할 때 마치 확장 클래스 의 원생 방법 인 것 같 습 니 다.
본질 적 으로 확장 방법 은 특수 한 정적 방법 이 라 고 할 수 있 습 니 다.이미 존재 하 는 클래스 에 새로운 방법 을 추가 할 수 있 습 니 다.비록 이 확장 류 의 소스 코드 에 접근 할 수 있 는 권한 이 없 더 라 도 확장 방법 은 서명 중의 첫 번 째 매개 변수 가 this 인 것 을 제외 하고 정적 방법 과 똑 같 습 니 다.모든 클래스 에 임의의 확장 방법 을 추가 할 수 있 습 니 다.🐂👃이 확장 방법의 특성 은 값 형식 에 도 작용 할 수 있다.
확장 방법 을 사용 할 때 아래 의 몇 가지 점 을 기억 하 세 요.
4.567917.확장 방법 은 반드시 정태 적 인 방법 이 어야 한다.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\#확장 방법 에 대한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.