C#

· C#
이번 포스팅은 바이트 배열로 통신을 하면서 알게 된 BitConverter 클래스에 대해 정리하였습니다. | BitConverter 클래스 'BitConverter' 클래스는 다양한 데이터 형식을 바이트 배열로 변환하거나 바이트 배열을 다양한 데이터 형식으로 변환할 수 있게 하는 클래스입니다. 이 클래스를 통해 정수, 부동 소수점, 문자 등의 데이터를 바이트 배열로 표현하고 바이트 배열에서 원래 데이터 형식으로 되돌릴 수 있습니다. 그래서 저는 이 클래스로 모듈과 TCP/IP 통신을 통해 데이터를 주고받았고 그 데이터들을 바이트화 하고 다시 float형으로 만들어 통신을 하는 클래스를 구현했지만 BitConverter 클래스에 대해 정리해보려고 합니다. | BitConverter.GetBytes() 메서..
· C#
C# 개발 시, 특히 네트워크 통신이나 파일 처리와 같은 작업에서 데이터를 반드시 다뤄야 합니다. 이때, Array 클래스는 데이터 컬렉션을 효율적으로 관리할 수 있는 다양한 메서드를 제공합니다. 이번 포스팅은 그중에서도 Reserve, Copy, ConvertAll 메서드를 통해 byte 배열을 어떻게 다룰 수 있는지 정리하였습니다. | Reverse 데이터의 순서를 뒤집어야 할 때, Array.Reverse 메서드를 사용합니다. Endian 변환 과정에서 필요한 작업을 손쉽게 처리할 수 있습니다 | Reverse 메서드 파라미터 public static void Reverse(Array array, int index, int length) array : 순서를 뒤집을 배열 index : 뒤집기 시작할..
· C#
C#에서 List를 다루다 보면 종종 리스트의 마스지막 요소에 접근해야 할 때가 있습니다. 이번 포스팅은 C#에서 리스트의 마지막 요소에 접근하는 세 가지의 간단한 방법을 정리했습니다. | 1. 인덱스를 이용한 접근 가장 일반적인 방법 중하나는 리스트의 길이를 확인한 후 마지막 요소에 접근하는 것입니다. List numbers = new List { 1, 2, 3, 4, 5 }; if (numbers.Count > 0) { int lastIndex = numbers.Count - 1; int lastElement = numbers[lastIndex]; Console.WriteLine("마지막 요소: " + lastElement); } else { Console.WriteLine("리스트가 비어있습니다."..
· C#
이번 포스팅은 C#으로 프로젝트를 진행하면서 알게 된 Monitor.Enter 메서드와 Monitor.Exit 메서드에 대해 정리하였습니다. 멀티스레드 환경으로 프로젝트를 진행하다 보면 여러 스레드가 객체에 동시에 접근하게 되어 에러가 발생하는 경우가 있습니다. 이런 에러를 방지하기 위해 C#에서 Monitor.Enter 및 Monitor.Exit 메서드를 사용하여 잠금(locking)을 제공하여 여러 스레드가 동시에 접근하지 못하도록 보호합니다. | Monitor.Enter 'Monitor.Enter' 메서드는 특정 객체에 대한 잠금을 요청하고, 이 잠금을 획득할 때까지 대기합니다. 만약 이미 다른 스레드가 해당 객체에 대한 잠금을 하고 있다면, 현재 스레드는 잠금을 할 수 있을 때까지 멈추고 대기합니..
· C#/Winform
이번 포스팅은 프로젝트를 진행하면서 적용한 내용에 대해 정리하였습니다. | 요청(문제) 상황 사용자가 특정 작업을 위해 Form을 열었고, 이 Form이 이미 실행 중일 때, 또 다른 Form을 여는 것이 아니라 기존의 Form을 활성화를 하고자 했습니다. 또한 Form 내의 데이터를 보여주는 DataGridView 컨트롤도 최선 정보로 업데이트되어야 했습니다. | 해결 방법 열려 있는 Form 확인 : Application.OpenForms 컬렉션을 사용하여 이미 열려 있는 Form 인스턴스를 찾음 Form 활성화 : Activate() 메서드를 사용하여 해당 Form을 사용자에게 보이게 합니다. From이 최소화되어 있다면, 먼저 정상 상태로 변경 DataGridView 최신화 : Form 내부의 D..
· C#
| 에러 내용 컬렉션을 사용하다 발생한 에러입니다. 이 에러는 프로그램이 컬렉션을 순회하고 있는 동안 컬렉션이 변경되었을 때 발생하는 에러입니다. 컬렉션을 순회하는 도중에는 원소를 추가하거나 제거하는 등의 작업을 수행하면 안 됩니다. 이러한 작업이 발생하면 컬렉션의 상태가 변경되고, 이는 열거 작업에 영향을 미칩니다. 그렇기 때문에 .Net은 이런 상황을 예방하기 위해 이런 종류의 에러를 발생시킵니다. 예제) System.InvalidOperationException 에러 발생 상황 List numbers = new List { 1, 2, 3, 4, 5 }; foreach (int number in numbers) { if (number == 3) { numbers.Remove(number); } } 위..
· C#
지난 포스팅에 이어 이미지의 2차원 배열을 순회하는 방법에 대해 알아보겠습니다. 2차원 배열을 순회하는 기초적인 방법은 이전 글을 통해 확인해 보세요! C# 이미지의 2차원 배열을 순회하는 여러 가지 방법 - 1 C# 이미지의 2차원 배열을 순회하는 여러가지 방법 - 1 C#에서는 이미지를 2차원 배열로 다루게 됩니다. 이번 포스팅은 C#에서 2차원 배열을 순회하는 여러 가지 방법에 대해 알아보고 작업 속도를 비교해 보겠습니다. | 왜 이미지를 2차원 배열로 사용 wjunsea.tistory.com | 데이터를 분할하여 2차원 배열 순회 데이터를 분할하여 배열을 처리하는 방법은 큰 데이터 세트를 더 작은 부분으로 나누고, 각 부분을 독립적으로 처리하는 원리에 기반합니다. 이는 특히 큰 규모의 데이터에서 ..
· C#
C#에서는 이미지를 2차원 배열로 다루게 됩니다. 이번 포스팅은 C#에서 2차원 배열을 순회하는 여러 가지 방법에 대해 알아보고 작업 속도를 비교해 보겠습니다. | 왜 이미지를 2차원 배열로 사용하는가? C#에서는 이미지를 2차원 배열로 다루게 됩니다. 그 이유는 이미지 데이터의 특성 자체를 이해하기 위해서입니다. 이미지는 픽셀로 구성되어 있으며, 각 픽셀은 화면에서 특정 위치를 나타냅니다. 이 위치는 바로 이미지의 x 좌표와 y 좌표, 즉 2차원의 공간으로 표현됩니다. 이미지를 2차원 배열로 표현하면, 배열의 각요소가 이미지의 픽셀 하나를 나타내게 되며 배열의 인덱스가 바로 픽셀의 위치 (x, y)를 나타내며 인덱스에 저장된 값은 해당 픽셀의 색상 정보를 나타냅니다. 따라서 이미지를 2차원 배열로 다루..
우준세
'C#' 카테고리의 글 목록