본문 바로가기

C#38

[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.
[C#, Unity] C#으로 게임 개발하기 게임 개발 산업은 PC, 콘솔 및 모바일 장치를 포함한 다양한 플랫폼에서 플레이할 수 있는 몰입감 있고 매력적인 게임을 만들려는 개발자의 수가 증가하면서 최근 몇 년 동안 급속한 성장을 경험했습니다. 오늘날 개발자들이 가장 많이 사용하는 게임 개발 엔진 중 하나는 다양한 게임을 만들기 위한 강력하고 다양한 플랫폼을 제공하는 Unity입니다. Unity는 게임 개발에 가장 많이 사용되는 프로그래밍 언어 중 하나인 C#을 비롯한 다양한 프로그래밍 언어를 지원하는 크로스 플랫폼 게임 엔진입니다. C#은 성능, 보안 및 사용 용이성을 포함하여 게임 개발에 적합한 다양한 기능을 제공하는 현대적인 객체 지향 언어입니다. 이 블로그에서는 Unity와 C#이 게임 개발에 훌륭한 조합인 이유와 자신만의 게임 개발을 시작.. 2023. 2. 14.
[C#, Unity] 몹, 객체 복사하기 (에러 처리) 게임을 만들다가, 적을 만들고 복사를 하는데 그 적이 죽어버리면(Destroy) 더 이상 복사를 하지 못했다. 복사할 객체가 사라져버렸기 때문이다. 그리고는 이런 에러 메세지를 남긴다. MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. 유니티 초보인 나는 이런 에러 메세지를 받아도 답을 찾기 힘들어한다. 마침 같이 운동하고 있는 친구 중, 유니티 개발자가 있어 이런 일이 있다고 했더니 프리팹(Pref.. 2023. 2. 13.