이번 포스팅은 기존 프로젝트를 리팩토링 하면서 알게 된Task.ContinueWith 메서드를 분석하기 위해 작성했습니다. | 코드 예제먼저 같은 기능을 async/await 방식과 Task.ContinueWith 방식으로 구현했습니다. | async/await 방식public async Task GetDataAsync(){ var data = await Task.Run(() => { Thread.Sleep(1000); // 긴 작업 return "완료됨"; }); return $"결과: {data}";} | ContinueWith 방식public Task GetDataWithContinueAsync(){ return Task.Run(() => {..
C#을 사용하여 프로젝트를 진행하면 List 컬렉션을 자주 사용합니다.그중 특정 조건에 맞는 첫 번째 요소나 마지막 요소를 가져올 때First, FirstOrDefault, Last, LastOrDefault 같은 LINQ 확장 메서드를 활용할 수 있습니다.이 메서드들은 비슷해 보이지만 동작 방식에서 중요한 차이가 있으며,잘못 사용할 경우 런타임 예외로 이어질 수도 있습니다.이 글에서는 각 메서드의 차이점과 사용 예제를 통해 안전하게 활용하는 방법을 소개하겠습니다. | First vs FirstOrDefault| FirstFirst()는 조건에 맞는 첫 번째 요소를 반환합니다.만약 컬렉션이 비어 있거나 조건에 맞는 요소가 없다면 예외를 발생시킵니다. ex) First() 사용과 예외 발생 var num..
이번 포스팅은 프로젝트르 진행하면서 유용하게 사용한정규 표현식에 대해 정리하였습니다. | 정규 표현식 (Regular Expression) 정규 표현식은 문자열 검색 및 문자열 조작을 위해 사용하는 개념입니다.C#에서는 System.Text.ReqularExpressions 네임스페이스를 통해정규 표현식을 쉽게 사용할 수 있습니다. | 기본 개념 정규 표현식은 문자열에서 특정 패턴을 정의하는 방법입니다.가장 쉬운 예시가 이메일, 전화번호 같은 구조가 정해져 있는 형식에서유용하게 사용할 수 있습니다. 정규 표현식에서 '메타 문자'를 사용해서 복잡한 패턴을 단순하게 표현하는데자주 사용하는 메타 문자는 다음과 같습니다. . : 임의의 한 문자* : 0회 이상 반복+ : 1회 이상 반복? : 0회 또는 1회^ ..
이번 포스팅은 제가 잘 활용하지 못했던Enum 열거형에 대해 작성하였습니다.| Enum?C#에서 Enum은 직접 정의한 상수 집합을 나타내는 데이터 형식입니다. 주로 상수 값을 그룹화하여 사용하며, 특정 값을 의미하는 이름을 만들어 사용합니다글로 읽으면 이해가 안 되는데 바로 예시를 들어볼게요 public enum Season{ Spring, Summer, Autumn = 14, Winter} 위 코드를 보시면 Season 이라는 Enum을 정의했습니다.상수 값을 정의하지 않으면 기본으로 0부터 시작하는 숫자로 매핑되며순차적으로 증가합니다.Spring은 0, Summer은 2라는 값으로 정의됩니다.하지만 Autumn 처럼 14로 명시적으로 정의를 한다면Winter는 그다음 숫자인 1..
| 에러 내용 컬렉션을 사용하다 발생한 에러입니다. 이 에러는 프로그램이 컬렉션을 순회하고 있는 동안 컬렉션이 변경되었을 때 발생하는 에러입니다. 컬렉션을 순회하는 도중에는 원소를 추가하거나 제거하는 등의 작업을 수행하면 안 됩니다. 이러한 작업이 발생하면 컬렉션의 상태가 변경되고, 이는 열거 작업에 영향을 미칩니다. 그렇기 때문에 .Net은 이런 상황을 예방하기 위해 이런 종류의 에러를 발생시킵니다. 예제) System.InvalidOperationException 에러 발생 상황 List numbers = new List { 1, 2, 3, 4, 5 }; foreach (int number in numbers) { if (number == 3) { numbers.Remove(number); } } 위..
지난 포스팅에 이어 이미지의 2차원 배열을 순회하는 방법에 대해 알아보겠습니다. 2차원 배열을 순회하는 기초적인 방법은 이전 글을 통해 확인해 보세요! C# 이미지의 2차원 배열을 순회하는 여러 가지 방법 - 1 C# 이미지의 2차원 배열을 순회하는 여러가지 방법 - 1 C#에서는 이미지를 2차원 배열로 다루게 됩니다. 이번 포스팅은 C#에서 2차원 배열을 순회하는 여러 가지 방법에 대해 알아보고 작업 속도를 비교해 보겠습니다. | 왜 이미지를 2차원 배열로 사용 wjunsea.tistory.com | 데이터를 분할하여 2차원 배열 순회 데이터를 분할하여 배열을 처리하는 방법은 큰 데이터 세트를 더 작은 부분으로 나누고, 각 부분을 독립적으로 처리하는 원리에 기반합니다. 이는 특히 큰 규모의 데이터에서 ..
이번 포스팅은 C#의 Windows Forms 애플리케이션을 사용하면서 알게 된 방법에 대해 정리해 보았습니다. | Form의 존재 여부 확인 Form을 사용하면서 Form을 초기화하고 생성했을 때 Form이 생성 됐는지 안 됐는지 확인하는 방법을 알고 싶었습니다. 존재 여부에 따라 코딩을 하고 싶었고 Application 컬렉션에서 방법을 찾았습니다. | Application.OpenForms Application.OpenForms는 현재 실행 중인 애플리케이션에서 열린 모든 Form을 포함하는 컬렉션입니다. 이 컬렉션은 FormCollection 타입으로, Form이 열릴 때 추가되고 닫힐 때 제거 됩니다. | Application.OpenForms 활용 방법 1. 특정 Form의 존재 여부 확인 f..
이번 포스팅은 C# Winform에서 이미지의 히스토그램을 표현하는 방법에 대해 알아보겠습니다. 히스토그램은 이미지의 색상 분포를 시각화하는데 유용하게 사용됩니다. 이를 통해 이미지의 전반적인 색상 톤을 빠르게 이해할 수 있습니다. | UI 구현 먼저 히스토그램으로 표현할 이미지를 나타낼 picturebox 도구와 이미지의 히스토그램을 나타낼 chart 도구를 Form에 추가합니다. 버튼 두 개를 통해 이미지를 불러오고 불러온 이미지의 히스토그램을 Chart에 표시해 보겠습니다. | picturebox 이미지 로드 구현 Image Load 버튼을 클릭 시 설정한 경로의 이미지를 picturebox에 띄우는 코드를 구현하겠습니다. 예시) Image Load 클릭 이벤트에 picturebox Image Lo..