C\#9.0 새로운 특성의 Lambda 버 림 매개 변 수 를 분석 합 니 다.
2494 단어 c#9.0 새로운 기능기원 을 버리다lambda
버 림 원(Discards)은 C\#7.0 에서 지원 되 기 시 작 했 습 니 다.사용 하지 않 는 임시 가상 변 수 를 버 리 기 위해 서 입 니 다.문법 적 으로 값 을 부여 하 는 데 사용 되 지만 저장 공간,즉 값 이 없 기 때문에 값 을 읽 을 수 없습니다.버 림 용 (밑줄)은 밑줄 은 하나의 키워드 로 값 만 부여 할 수 있 고 읽 을 수 없다 는 것 을 나타 낸다.예 를 들 어:
C\#7.0 에서 버 림 원 의 사용 장면 은 주로 다음 과 같은 네 가지 가 있다.
4.567917.원조 와 대상 의 해체is 와 switch 를 사용 하 는 모드 가 일치 합 니 다
장면 1:원조/대상 의 해체
var tuple = (1, 2, 3, 4, 5);
(_, _, _, _, var fifth) = tuple;
필드 2:is/switch 모드 매 칭 사용
var obj = CultureInfo.CurrentCulture.DateTimeFormat;
switch (obj)
{
case IFormatProvider fmt:
Console.WriteLine($"{fmt} object");
break;
case null:
Console.Write("A null object reference");
break;
case object _:
Console.WriteLine("Some object type without format information");
break;
}
if (obj is object _)
{
...
}
장면 3:out 매개 변 수 를 가 진 방법 에 대한 호출
var point = new Point(10, 10);
// x, y
point.GetCoordinates(out int x, out _);
장면 4:역할 영역 내 독립 사용 장면
void Test(Dto dto)
{
_ = dto ?? throw new ArgumentNullException(nameof(dto));
}
기 원 을 이해 하고 기 원 의 네 가지 사용 장면 도 알 게 되 었 다.그러면 아래 의 C\#9.0 에서 새로 지원 하 는 기 원 사용 장면 에 대해 쉽게 이해 할 수 있다.C\#9.0 버 림 원 에 대한 장면 지원 이 추가 되 었 습 니 다.Lambda 매개 변 수 는 익명 방법 매개 변수 도 포함 합 니 다.예시:
// C# 9
Func<int, int, int> zero = (a, b) => 0;
Func<int, int, int> func = delegate (int a, int b) { return 0; };
// C# 9
Func<int, int, int> zero = (_, _) => 0;
Func<int, int, int> func = delegate (int _, int _) { return 0; };
C\#9 전에 사용 하지 않 는 Lambda 인자 도 이름 을 지어 야 합 니 다.C\#9 는 버 림 파 라 메 터 를 지원 하 는 한편 으로 는 이름 을 간소화 하고 다른 한편 으로 는 메모리 분 배 를 절약 합 니 다.더 중요 한 것 은 프로 그래 밍 의 의 도 를 더욱 명확 하 게 하고 한눈 에 이 매개 변 수 를 사용 하지 않 는 다 는 것 을 알 게 하 며 코드 의 가 독성 과 유지 가능성 을 강화 하 는 것 이다.참고:
[Discards - C# Guide] http://dwz.date/bpuV
이상 은 C\#9.0 새로운 특성의 Lambda 버 림 매개 변수 에 대한 상세 한 내용 입 니 다.c\#Lambda 버 림 매개 변수 에 대한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.