프로그래밍/C# 57

[C#] 팩토리 패턴

팩토리 패턴직접 생성자(new 연산자)호출 사용 대신 객체 생성 시 사용됩니다.팩토리 메서드의 반환 유형은 일반적으로 추상 클래스 또는 인터페이스로 선언됩니다.샘플 코드 static void Main(string[] args) { IDBConnector dbConnector = DBFactory.CreateDBConnector("Oracle"); dbConnector.Connection(); dbConnector.Disconnection(); } public class DBFactory { public static IDBConnector CreateDBConnector(string dbType) { return dbType switch {..

프로그래밍/C# 2025.01.03

[C#] C# 10.0 CallerArgumentExpression특성

샘플 코드static void Main(string[] args){ int a = 1; Assert(a > 0); }static void Assert(bool argument1, [CallerArgumentExpression("argument1")] string? paramName = null){ if (argument == false) { Console.WriteLine($"argument = {argument1}, paramName = {paramName} "); }}CallerArgumentExpression 특성이 붙은 인자는 기본값이 있어야 하고 그 특성에 전달된 argument1은 해당 메서드에 전달된 또 다른 매개 변수의 이름이어야 합니다.출력 결..

프로그래밍/C# 2025.01.02

[C#] CPU, DISK I/O 스트레스 테스트

CPU, DISK I/O 사용률을 최대로 사용한 상태에서 APP 테스트가 필요하여 사용하게 된 코드입니다.using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CPU_Disk_PerformanceTEST{ public class CPU_DiskPerformanceTEST { public static void Main(string[] args) { Console.WriteLine(" 1 : Use Cpu 100% \n 2 : Usage DIsk IO"); ..

프로그래밍/C# 2024.10.18

[C#] WPF Func<T>

GPT Q. private readonly IDialogView _selectDefaultRecipeDialogView; private readonly Func _selectDefaultRecipeDialogView;  차이점?1. private readonly IDialogView _selectDefaultRecipeDialogView;타입: IDialogView설명:이 선언은 IDialogView 타입의 객체를 저장하기 위한 필드입니다.선언된 필드는 하나의 IDialogView 객체를 저장하며, 해당 객체는 한 번 설정되면 바뀌지 않습니다(readonly).이 필드는 단일 객체 참조를 보유하고 있으며, 프로그램에서 특정 시점에 이 객체가 초기화됩니다(예: 생성자에서 주입).사용 예시:한 번 할당된 I..

프로그래밍/C# 2024.09.27

[C#] 게터,세터,프로퍼티

게터(Getter), 세터(Setter), 그리고 프로퍼티(Property)은 C#에서 데이터 캡슐화 및 정보 은폐를 지원하는 중요한 개념입니다. 이들은 클래스 내의 멤버 변수(필드)를 조작하고 접근하는 방법을 제어하는 데 사용됩니다. 게터(Getter): 게터는 클래스 내의 프라이빗 필드(private field)의 값을 읽어오는 역할을 합니다. 게터 메서드는 "get" 키워드를 사용하여 정의하며 값을 반환하는 코드 블록으로 이루어집니다. 게터를 사용하여 외부 코드에서 필드 값을 읽을 수 있습니다. private int myField; public int GetMyField() { return myField; } 세터(Setter): 세터는 클래스 내의 프라이빗 필드의 값을 변경하는 역할을 합니다. 세..

프로그래밍/C# 2023.10.15

[C#] IEnumerable

IEnumerable IEnumerable 인터페이스는 .NET에서 컬렉션을 나타내는 데 사용되는 인터페이스로, 컬렉션을 반복(iterate)하고 열거할 수 있는 기능을 제공합니다. 컬렉션의 열거를 위해 일반적으로 사용되는 인터페이스입니다. 지연된 실행 (Lazy Execution): IEnumerable은 지연된 실행을 지원합니다. 이는 컬렉션의 요소가 실제로 필요한 순간에만 생성되고 처리되는 것을 의미합니다. 따라서 모든 데이터를 미리 메모리에 로드할 필요가 없으며, 필요한 요소만 처리하여 효율성을 높일 수 있습니다. 메모리 관리 및 성능 최적화: 대용량 데이터셋의 경우, 모든 데이터를 한 번에 메모리에 로드하는 것은 메모리 부족 문제와 성능 저하를 초래할 수 있습니다. IEnumerable을 사용하..

프로그래밍/C# 2023.08.24