C# 11이 출시됩니다! 당신의 마음을 사로잡을 5가지 기능 🤯
보간된 체인의 "구멍"
C# 11이 가져올 이 새로운 기능을 소개하려면 C#이 현재 두 가지 유형의 intepolated strings:
$@""
$""
여기서 주요 차이점은 그대로 보간된 문자열은 텍스트 세그먼트에 새로운 코드 행을 포함할 수 있고 적절한 인용 부호만 이스케이프할 수 있다는 것입니다
" "
.이는 축어적이지 않은 보간 문자열에서는 발생하지 않습니다. 이 경우 이스케이프 문자(예:
/r/n
)가 사용됩니다."구멍"을 언급할 때 I - 및 Microsoft - 는 보간식을 의미합니다.
이 모든 것은 비축어적 보간 문자열의 모든 "구멍"에 영향을 미쳤습니다(여전히 영향을 미칩니다). 이러한 구멍은 실제로 텍스트가 아니므로 이스케이프 규칙의 영향을 받지 않아야 합니다.
C# 11로 수행할 수 있는 작업Microsoft's example을 살펴보겠습니다. 이제 C# 10에서는 오류가 발생하기 때문에 불가능합니다.
var v = $"Count ist: { this.Is.Really.Something()
.That.I.Should(
be + able)[
to.Wrap()] }.";
패턴 나열
여기에 또 다른 새로운 기능이 있습니다. 바로 새로운 목록 패턴입니다. C#11에서 할 수 있는 것은 배열 및 목록과 비교하여 다른 요소를 일치시키거나 0개 이상의 요소와 일치하는 절단 패턴을 포함하는 것입니다.
예를 들어 슬라이스 패턴은 슬라이스의 내용을 캡처하기 위해
var
패턴과 같은 다른 목록 패턴 뒤에 갈 수 있습니다.Microsoft의 예를 살펴보겠습니다.
The pattern
[1, 2, .., 10]
matches all of the following:
int[] arr1 = { 1, 2, 10 };
int[] arr1 = { 1, 2, 5, 10 };
int[] arr1 = { 1, 2, 5, 6, 7, 8, 9, 10 };
To explore list patterns consider:
public static int CheckSwitch(int[] values)
=> values switch
{
[1, 2, .., 10] => 1,
[1, 2] => 2,
[1, _] => 3,
[1, ..] => 4,
[..] => 50
};
Early peek at C# 11 features.에서 자세한 예를 볼 수 있습니다.
매개변수 Null 확인
이 새로운 기능은 이미 알고 있듯이 메소드 인수가 null인지 확인하기 위해 상용구 코드의 변형을 사용하는 것이 일반적입니다. 예를 들면 다음과 같습니다.
public static void M(string s)
{
if (s is null)
{
throw new ArgumentNullException(nameof(s));
}
// Body of the method
}
이제 null 매개변수를 확인하려는 의도를
!!
로 축약할 수 있습니다.public static void M(string s!!)
{
// Body of the method
}
이는
get
및 set
를 사용하여 인덱서 매개변수를 확인하는 데에도 사용할 수 있습니다.public string this[string key!!] { get { ... } set { ... } }
생성자
이 기능에는 few small changes이 있습니다. 언제든지
!!
null 유효성 검사 구문을 사용하여 명시적 null 확인 변경이 수행되면 해당 유효성 검사는 필드 이니셜라이저 이후에 발생합니다. 그 전에 매개 변수 null 검사 구문을 사용하는 null 검사가 수행됩니다.Nullable 참조 유형과의 상호 작용
앞에서 본
!!
연산자를 매개변수 이름에 적용하면 null이 허용되는 상태에서 null이 아닌 것으로 시작합니다. 확인하자Microsoft example:void WarnCase<T>(
string? name!!, // CS8995 Nullable type 'string?' is null-checked and will throw if null.
T value1!! // Okay
)
보시다시피 컴파일러는 매개변수의 구문이 명시적으로 null을 허용하는 유형과 함께 사용되는 경우
!!
경고를 표시합니다.C# 11 결론
불과 몇 달 전(작년 11월)에 Microsoft가 공식적으로 .NET 6 및 C# 10을 출시했기 때문에 C# 11의 새로운 기능과 기능이 많고 대부분이 완전히 활용되지 않았으므로 앞으로 그리 멀지 않은 미래에 마이크로소프트가 그들에 대해 깊이 있게 이야기할 때까지 기다리는 것입니다.
이 기사가 마음에 드셨다면 FOLLOW US를 잊지 마세요. 그래야 .NET의 새로운 소식을 가장 먼저 읽을 수 있습니다.
Reference
이 문제에 관하여(C# 11이 출시됩니다! 당신의 마음을 사로잡을 5가지 기능 🤯), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bytehide/c-11-is-coming-5-features-that-will-blow-your-mind-3o7h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)