Skip to main content

#csharp

Articles tagged with #csharp

Posts tagged #csharp

  1. Apr 17, 20233 min read57 views

    C#의 공변성(Covariance) 및 반공변성(Contravariance) | Steven Giesel

    본 글은 Steven Giesel님의 Covariance and Contravariance in C#글을 번역한 것입니다. .NET Framework 예제를 사용하여 C#의 공변성 및 반공변성에 대해 이야기해 보겠습니다! 공변성과 반공변성은 제네릭을 다룰 때 C#에서 필수적인 개념으로, 제네릭 유형을 할당할 때 더 유연하게 사용할 수 있도록 해줍니다. 이제 프레임워크 자체에서 바로 예제를 살펴보겠습니다! 또한 좀 더 자세히 살펴보고 일반 제...

  2. Apr 16, 20236 min read59 views

    문자열을 .NET 개체로 변환하기 - IParsable 및 ISpanParsable | Christian Nagel

    본 글은 Christian Nagel님의 Converting Strings to .NET Objects – IParsable and ISpanParsable을 번역한 것입니다. C# 11의 새로운 기능으로 인터페이스 추상 정적 멤버를 사용할 수 있습니다. 이를 통해 + 및 - 연산자를 사용하는 등 제네릭 클래스 구현에서 계약으로 사용할 클래스 메서드를 정의할 수 있습니다. .NET 7에서는 숫자 유형이 많은 새로운 인터페이스를 구현합니다. ...

  3. Apr 2, 20236 min read17 views

    SIMD를 사용한 스테로이드의 LINQ | Steven Giesel

    본 글은 Steven Giesel님의 LINQ on steroids with SIMD 글을 번역한 것입니다. C#의 Generic Math 기능은 제네릭 연산으로 번역하였습니다. 이 블로그 게시물에서는 LINQ 쿼리 속도를 높이기 위해 SIMD 명령어를 사용하는 방법을 살펴봅니다. 데이터 배열에 SIMD 연산을 수행하는 Vector 타입을 사용하겠습니다. 또한 BenchmarkDotNet 라이브러리를 사용해 코드의 성능을 측정할 것입니다. 또...

  4. Mar 2, 20231 min read47 views

    대량의 목록에서 다수의 삭제가 필요한 경우 최적화

    다음의 코드로 예시를 들어보겠습니다. 천만 건의 목록에서 다수의 항목이 삭제가 될 때 생각보다 성능이 좋지 않습니다. List<T>의 구현이 항목 조회 및 추가에 최적화 되어 있기 때문입니다. using System.Diagnostics; var list = Enumerable.Range(1, 200000).ToList(); Console.WriteLine(list.Count); var sw = Stopwatch.StartNew(); ...

  5. Jan 27, 20231 min read27 views

    상태 반환 패턴을 이용한 예시

    아래의 글에 영감을 받아 https://www.thereformedprogrammer.net/a-pattern-library-for-methods-that-return-a-status-including-localization/ 다음의 코드를 생성해 보았습니다. 양수만 더할 수 있는 AddPositive()가 있을 때 올바른 연산과 잘못된 연산을 Result<T>을 이용해 반환할 수 있습니다. // 함수의 성공/실패를 반환값을 통해 식별할 수 있...