본문 바로가기
728x90
반응형

분류 전체보기295

C#] Indices(har operator ^), Range(range operator ..) sequence의 elements 중 하나 또는 범위에 어떻게 접근할 수 있는지 살펴보자. Indicessequence의 index를 나타낸다. C# 8.0부터 ^ operator로 index를 지정할 수 있다. constructor Index는 2개의 paramter로 구성되어 있다. public Index (int value, bool fromEnd = false);index는 0보다 크거나 같아야 하며, fromEnd는 optional이다.  Index는 아래와 같이 사용할 수 있다. public class IndexExamples{ public static string GetFirst(string[] names) { var index = new Index(0); .. 2024. 4. 26.
C#] Span<T>, ReadOnlySpan<T> 과 메모리 성능 성능은 software 개발자에게 항상 중요한 문제이다. .NET 팀에서 Span 구조체를 release했을때, 개발자들은 앱 성능을 강화할 수 있게 되었다. 어떻게 구현하고, 사용할 수 있는지 알아보자. C#에서 Span이란? Span은 ref struct object로 구현되며, 이것은 Span이 항상 stack memory에 할당된 다는 것을 나타낸다. Span은 pointer와 length를 갖는 stuct로 나타낼 수 있다. public readonly ref struct Span { private readonly ref T _pointer; private readonly int _length; } 힙에 있는 T type object의 reference와 length가 있다. Span은 항상 s.. 2024. 4. 5.
.NET(닷넷)이란? .NET과 기능에 대해 살펴보자. .NET이 무엇인지 왜 사용해야 하는지, 어떠한 한계가 있는지도 살펴보자. .NET이란? .NET은 여러 형태의 앱을 개발할 수 있는 무료, 크로스 플랫폼, 오픈소스 개발 플랫폼이다. MS에서 만들었으며, 여러 언어/에디터/플랫폼에서의 동작을 지원한다. 요약하면, .NET은 런타임 환경, 컴파일러, 언어, base class libraries로 구성되어 있다. 그 위에 여러 앱 모델이 있다. .NET 구현 방식을 살펴보자. .NET 5+(구 .NET Core) : Windows, macOS, Linux에서 실행이 가능한 .NET 크로스플랫폼 구현이다. 이를 이용해서 cloud, web, desktop과 같은 다양한 applications를 개발할 수 있다. 현재 .NET.. 2024. 3. 22.
C#] Properties vs Fields 차이점 Field란? class나 struct 바로 아래에 선언된 변수이다. public, private, protected, internal, protected internal, private protected가 될 수 있다. private int _age; private 이기 때문에, class 내부에서만 접근할 수 있다. fields는 일반적으로 backing store, backing field 용도로 사용한다. field를 private로 선언하고 public property로 접근해서 사용한다. public int Age { get { return _age; } set { _age = value; } } Person class의 생성에 따른 실행을 살펴보자. public class Person { p.. 2024. 2. 15.
C#] Optional Parameters Optional Parameters이란? 함수 호출 시, parameter를 선택적으로 포함할 수 있다. 피자의 추가토핑 처럼, 원하면 추가하고 없어도 괜찮다. public void OrderPizza(string size, string extraTopping = "") { ... } 위 코드에서 extraTopping이 선택적 파라미터이다. OrderPizza 호출 시, extraTopping을 포함하거나 아니면 size만 전달해도 된다. Optional parameters는 코드에 확정성과 단순함을 가져온다. method overloads를 줄여준다. 하나의 함수가 여러 다른 일을 할 수 있다. 가독성을 늘린다. method versions 사이를 왔다갔다 할 필요가 없다. flixible API를 .. 2024. 2. 14.
C#] IDisposal Interface 구현 방법 IDisposal interface는 관리코드에 리소스 정리 툴을 제공한다. IDisposal을 구현하므로, object에 의해 할당된 관리하지 않는 리소스를 release할 수 있다. IDisposable interface의 사용목적 주로 리소스를 시기적절하게 release하는데 사용된다. .NET Garbage Collector는 사용하지 않는 변수를 예상치 못하게 releasing처리 하므로 메모리를 잘 관리한다. GC가 메모리 정리를 하기 전에 메모리가 부족할 수 있다. 따라서 수동으로 메모리 정리 처리를 해줘야 한다. 이러한 리소스는 주로 파일처리, DB, 네트워크 작업과 관련되어 있다. 리소스 부족으로 성능 이슈가 생기지 않도록, 리소스를 release시켜야 한다. IDisposable 기본 .. 2024. 2. 14.
728x90
반응형