Programming/C# - Window 91

C#/ Crypto 암호화

# 해시 암호화(MD5, SHA256, SHA384, SHA512) 예시 코드 * 암호화 개념 관련은 https://esoog.tistory.com/entry/%EC%95%94%ED%98%B8%ED%99%94Encryption 암호화(Encryption) # 해시 암호화와 AES(Advanced Encryption Standard) 암호화 1. **용도**: - **해시 암호화**: 주로 데이터 무결성 검증을 위해 사용됩니다. 동일한 입력에 대해 항상 동일한 고정 길이 해시 값을 생성하며, 주 esoog.tistory.com public class Hash { public enum HashType { MD5, SHA256, SHA384, SHA512 } /// /// MD5 암호화 /// /// 암호화 ..

C#/ [STAThread]

# [STAThread] C# 애플리케이션에서 스레드 모델을 지정하는 데 사용되는 특성 중 하나입니다. 이 특성은 주로 Windows Forms 및 COM(컴포넌트 객체 모델)과 관련된 애플리케이션에서 사용됩니다. '[ ]' 이런 형태를 애트리뷰트라고 하는데, 애트리뷰트는 코드에 메타데이터를 제공하여 컴파일러, 런타임 라이브러리, 또는 다른 도구에게 정보를 전달하는 데 사용합니다. [STAThread] 특성은 "Single-Threaded Apartment"의 약자인 "STA"를 나타냅니다. STA 모델은 Windows Forms 및 COM과 같은 사용자 인터페이스 기반 애플리케이션에서 일반적으로 사용됩니다. STA 모델에서는 단일 스레드가 사용자 인터페이스 처리 및 상호 작용을 담당하며, 다른 스레드에..

C#/ 어셈블리(Assembly) 사용

# 어셈블리(Assembly) .NET Framework 또는 .NET Core와 같은 Microsoft의 관리 코드 환경에서 사용되는 단위 컴파일된 코드 패키지입니다. 어셈블리는 하나 이상의 클래스, 인터페이스, 구조체, 열거형 및 리소스와 같은 코드와 관련된 메타데이터를 포함하고 있습니다. 어셈블리는 .NET 애플리케이션의 기본 빌딩 블록 중 하나로서 다음과 같은 주요 특징을 가지고 있습니다: 1. **단위 컴파일**: C# 코드는 컴파일되어 어셈블리로 패키징됩니다. 이러한 어셈블리는 컴파일된 IL(Intermediate Language) 코드와 메타데이터로 이루어져 있습니다. 2. **버전 관리**: 어셈블리에는 버전 번호가 있으며, 이를 통해 다른 어셈블리들과의 호환성을 관리할 수 있습니다. 새로..

C#/ KeyDown 이벤트 핸들러

키보드 키를 사용하여 프로그래밍 제어를 위해 KeyDown에 이벤트 핸들러를 설정해서 사용하고자 할 때, Control 의 ProcessCmdKey 를 오버라이딩 하면 이벤트를 다룰 수 있다. 예시: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Shift | Keys.C)) // Shift + C { btnPayment.PerformClick(); } else if (keyData == (Keys.Control | Keys.Enter)) // Ctrl+Enter { btnPrintDirect.PerformClick(); } else if (keyData == (Keys.Shift | K..

C#/ namsespace(네임스페이스)

# 네임스페이스(Namespace) C# 프로그래밍 언어에서 사용되는 개념으로, 코드를 구조화하고 그룹화하는 데 사용됩니다. 네임스페이스는 코드의 모듈화 및 이름 충돌을 방지하는 데 도움이 되며, 다음과 같은 몇 가지 중요한 특징이 있습니다: 1. **그룹화 및 구조화**: 네임스페이스를 사용하면 클래스, 인터페이스, 열거형 및 함수와 같은 프로그램 요소를 그룹화하고 조직화할 수 있습니다. 이를 통해 코드 기반의 모듈화와 계층 구조를 작성할 수 있습니다. 2. **이름 공간의 격리**: 네임스페이스는 코드 요소의 이름을 격리하여 이름 충돌을 방지합니다. 예를 들어, 동일한 이름의 클래스나 함수가 서로 다른 네임스페이스 내에 있으면, 충돌하지 않고 동시에 사용할 수 있습니다. 3. **.NET 클래스 라이..

C#/ 이벤트 핸들러 함수(Event Handler)

# 이벤트 핸들러 함수 어떤 이벤트가 발생했을 때 실행되는 함수입니다. 이벤트 핸들러 함수는 해당 이벤트에 대한 응답 또는 처리를 정의합니다. 아래는 이벤트 핸들러 함수의 간단한 설명입니다: 1. **이벤트 발생 및 등록**: 프로그램에서 발생하는 이벤트 (예: 버튼 클릭, 키 입력, 마우스 움직임)에 대한 응답을 처리하려면 해당 이벤트에 대한 이벤트 핸들러 함수를 등록해야 합니다. 2. **이벤트 핸들러 함수의 형식**: 이벤트 핸들러 함수는 특정 형식을 따릅니다. 일반적으로 함수는 이벤트의 이름과 함께 특정 매개변수를 받습니다. 이 매개변수에는 이벤트를 발생시킨 개체를 나타내는 "sender"와 이벤트에 대한 정보를 포함하는 "이벤트 아큐먼트 (Event Argument)"가 포함됩니다. 3. **이..

C#/ partial 클래스

# 부분 클래스 (Partial Class): - "부분 클래스"는 클래스를 두 개 이상의 .cs 파일에 나눠 정의할 수 있는 기능입니다. - 부분 클래스는 모든 파일에서 같은 클래스 이름을 사용하여 정의되어야 합니다. 이러한 파일은 각각 부분 클래스의 일부분을 정의합니다. - 주로 대규모 프로젝트 또는 코드 생성 도구에서 사용되며, 여러 사람이 동시에 작업하는 경우 유용합니다. - 주요 클래스 정의를 나눠 여러 파일에 나눠 작성하고, 다른 파일에 확장 메서드 또는 추가 기능을 정의할 때 사용됩니다. 예제: // File 1: MyClass.Part1.cs public partial class MyClass { private int field1; } // File 2: MyClass.Part2.cs pu..

C#/ 델리게이트와 이벤트(delegate, event)

**델리게이트 (Delegate)**: 1. **개념**: - 델리게이트는 메서드를 참조할 수 있는 형식으로, 메서드를 변수처럼 저장하고 전달할 수 있도록 해줍니다. - 델리게이트는 대리자 역할을 하며, 다른 메서드를 호출하거나 이벤트 처리를 위해 사용됩니다. 2. **사용 예**: - 델리게이트는 일반적으로 콜백 메서드, 이벤트 핸들러 등을 저장하고 호출하는 데 사용됩니다. - 다른 객체에 대한 참조를 저장하고 해당 객체의 메서드를 호출할 수 있습니다. 3. **예시**: // 델리게이트 정의 delegate void MyDelegate(string message); // 델리게이트 인스턴스 생성 MyDelegate myDelegate = Console.WriteLine; // 델리게이트를 사용하여 메..