본문 바로가기

C#40

[C#] CancellationToken 사용법 시작CancellationToken이라는 것을 알고 있었지만, 어떻게 작동하는지는 모르고 있었다.왜냐하면 회사의 코드에는 CancellationToken만 적혀있었기 때문에 무슨 의도인지는 알았지만 도대체 어떻게 동작하는지,감이 오지 않았다. 이런 코드로 있었기 때문,CancellationToken cancellationToken = new CancellationToken();var response = await ExecuteAsync(async token => await httpClient.PostAsync(url, content, token), cancellationToken); 이러면 프로그램이 어떻게 알고 취소를 하는거지? 싶었다. 그리고 알아본 바, 공식 문서https://learn.micros.. 2024. 7. 11.
[C#, Dart] Dart와 C#에서의 변경 불가능한 변수: `final`과 `readonly` 비교 Dart에서 final 키워드의 의미와 사용법Dart에서 final 키워드는 변수를 한 번만 할당할 수 있도록 제한하는 데 사용됩니다. final로 선언된 변수는 단 한 번 초기화될 수 있으며, 초기화된 후에는 값이 변경될 수 없습니다. 이는 주로 상수 또는 변경되지 않아야 하는 값을 정의할 때 사용됩니다. 다음은 final 키워드의 주요 특징과 사용 예입니다:주요 특징초기화 후 변경 불가: final 변수는 한 번 초기화된 후 값을 변경할 수 없습니다.런타임 상수: final 변수는 컴파일 시점이 아닌 런타임 시점에서 값을 할당할 수 있습니다.지연 초기화: final 변수는 선언 시 즉시 초기화하지 않고 나중에 한 번만 초기화할 수 있습니다.사용 예void main() { final String na.. 2024. 7. 1.
[C#] 형 변환에 대하여 (for string 그리고 메모리 관점) 들어가며 C#을 사용하며 우리는 많은 형변환을 하게 된다. 그래서 이런 저런 형변환 방법을 사용하게 되는데, string을 예로 들자면 아래 3개를 사용한다고 할 수 있겠다. (string) 캐스팅 .ToString() 메서드 as 연산자 왜 이렇게 다양한 방법이 존재할까? 궁금했다. 그리고 이번에 회사에서 리팩토링을 진행하며, 위 3가지 방법 중 1, 2번을 사용했는데 사실 모두 .ToString()만 사용했다. (string)이 사용된 것을 보기만 하고, 심지어 (string)을 .ToString()으로 바꿔버리기도 했다. 이유는 잘 모르는 상태에서, 회사 분의 말씀을 듣고 저게 더 좋은 방법이라고 생각했기 때문... 하지만 이번 조사에서 각각의 차이점을 알게 되었고, 정리해보고자 한다. 각각의 장점.. 2024. 4. 17.
[C#] HttpClient, IHttpClientFactory 차이와 올바른 사용법 최근 인터페이스 사용이 잦아지며, 인터페이스가 아닌 코드를 인터페이스화 하는 작업을 하고 있다. 그러다 가끔 HttpClient와 IHttpClientFactory 처럼, 사용되는 변수와 들어가는 인스턴스의 형식이 다른걸 발견하게 된다. 궁금해서 왜 그런지 찾아보았는데, 결국 들어가는건 같은 형이 되었기 때문에 상관 없었지만, 조금 더 알아보았다. 그리고 차이를 찾았는데, 우리 회사에 있는 코드는 아래와 같다. 현재 사용중인 코드 public class MyService { private readonly HttpClient _httpClient; public MyService(IHttpClientFactory httpClientFactory) { _httpClient = httpClientFactory... 2024. 3. 25.
[C#] 명시적 & 묵시적 형변환 명시적 형변환과 묵시적 형변환은 프로그래밍에서 데이터 타입을 변환하는 2가지 주요 방법이다. 1. 명시적 형변환 (Explicit Type Conversion 또는 Type Casting) 명시적 형변환은 개발자가 의도적으로 데이터 타입을 변환하는 과정을 말한다. 프로그래머가 특별한 형변환 연산자나 함수를 사용하여 데이터 타입을 변환하는 것을 포함한다. 종종 데이터의 손실이 발생할 수 있으므로 주의가 필요하다. 예) C# double myDouble = 3.14; int myInt = (int)myDouble; // 3 2. 묵시적 형변환 (Implicit Type Conversion 또는 Type Coercion) 묵시적 형변환은 언어나 컴파일러가 자동으로 데이터 타입을 변환하는 과정을 말한다. 연산이.. 2023. 11. 10.
[C#] JSON 데이터를 beautify(예쁘게 정렬하여 가독성을 높이는 것)하고 indent(들여쓰기)하는 방법 배경 C#에서 JSON 데이터를 beautify(예쁘게 정렬하여 가독성을 높이는 것)하고 들여쓰기(indent)하는 방법은 Newtonsoft.Json 라이브러리를 사용하여 쉽게 구현할 수 있습니다. Newtonsoft.Json은 C#에서 널리 사용되는 JSON 라이브러리로서, JSON 데이터를 다루는 다양한 기능을 제공합니다. 예제 아래는 Newtonsoft.Json 라이브러리를 사용하여 C#에서 JSON 데이터를 beautify하고 들여쓰기하는 예제입니다: 먼저, Newtonsoft.Json 라이브러리를 프로젝트에 추가해야 합니다. NuGet 패키지 관리자를 통해 Newtonsoft.Json 패키지를 설치할 수 있습니다. JSON 데이터를 beautify하고 들여쓰기하는 예제 코드는 다음과 같습니다:.. 2023. 7. 28.
[C#] 요소가 null일 때 처리하는 방법 Null 조건부 연산자 (?.) 이 연산자는 null 조건을 확인한 후, null이 아닌 경우에만 멤버를 접근하는 역할을 합니다. 만약 요소가 null이라면 접근 시 NullReferenceException을 방지할 수 있습니다. var str = null; var length = str?.length; // 만약 str이 null이라면 length는 undefined가 됨 Null 조건부 인덱서 (?[]) 이 연산자는 null 조건을 확인한 후, null이 아닌 경우에만 인덱서를 사용하여 요소에 접근하는 역할을 합니다. 여러 차원의 배열에서 특정 위치의 요소를 접근할 때 유용합니다. var array2D = null; var value = array2D?.[0][0]; // 만약 array2D가 nul.. 2023. 7. 27.
[C#] params로 매개변수 여러개 받는 방법 [C#] params로 매개변수 여러개 받기 Introduction 반갑습니다! 이번 기사에서는 C# 프로그래밍 언어에서 사용되는 "params" 키워드에 대해 알아보겠습니다. "params" 키워드를 이용하면 메소드에 여러 개의 매개변수를 유연하게 전달할 수 있습니다. 이 기능을 효과적으로 활용하여 코드를 간결하고 유연하게 작성하는 방법을 배워봅시다. What is the "params" Keyword in C#? "C#"에서 "params"는 매개변수를 가변적으로 전달할 수 있게 해주는 키워드입니다. 이 키워드를 사용하면 메소드에 배열 형태의 매개변수를 여러 개 전달할 수 있으며, 인자의 개수가 가변적일 때 유용하게 활용됩니다. How to Use "params" in C# Methods "C#"에서.. 2023. 7. 20.
[C#] 코드 최적화 팁 및 요령 C# 개발자로서 효율적이고 최적화된 코드를 작성하는 것은 업무의 핵심 측면입니다. 이는 애플리케이션이 원활하게 실행되도록 하는 데 도움이 될 뿐만 아니라 성능 병목 현상을 방지하고 코드를 유지 관리하기 쉽게 만드는 데도 도움이 됩니다. 이 블로그에서는 데이터 구조 사용을 위한 모범 사례, 효율적인 루프 작성을 위한 팁, 코드 성능 향상을 위한 제안을 포함하여 C# 코드를 최적화하기 위한 몇 가지 팁과 요령을 살펴보겠습니다. 올바른 데이터 구조 사용하기 데이터 구조의 선택은 코드 성능에 큰 영향을 미칠 수 있습니다. 데이터 구조를 선택할 때 데이터 세트의 크기, 수행해야 하는 작업 유형 및 작업 속도와 같은 요소를 고려해야 합니다. 예를 들어 많은 조회를 수행해야 하는 경우 List 대신 Dictionar.. 2023. 2. 15.