본문 바로가기

c#113

C# Linq - Enumerable.Repeat() Enumerable.Repeat(TResult, Int32) 메서드 public static System.Collections.Generic.IEnumerable Repeat (TResult element, int count); 매개변수 element TResult 반복할 값 count int32 값을 반복할 횟수 특정 타입의 값을 특정 횟수 반복하고 싶을때 사용한다. 정리하자면 element를 count만큼 반복 이를 보통 배열이나 리스트로 변환해서 사용한다. 예제 코드 IEnumerable strings = Enumerable.Repeat("I like programming.", 15); foreach (String str in strings) { Console.WriteLine(str); } /* .. 2023. 6. 13.
계속 실행되어야 하는 작업을 위한 BackgroundService in .NET Core IHostedService .NET Core 2.1에서 추가된 IHostedService은 개발자에게 관리되는 실행시간에서 백그라운드 서비스들을 실행할 수 있도록 해준다. 이 기능은 최소한의 구현만을 사용이 가능합니다. public interface IHostedService { Task StartAsync(CancellationToken cancellationToken); Task StopAsync(CancellationToken cancellationToken); } .NET Core의 의존성 주입을 해줍니다. 간단하게 구현이 가능하다! var hostBuilder = new HostBuilder() .ConfigureServices(services => services.AddHostedService.. 2023. 6. 5.
예제로 복습하는 C# 쓰레드 생성 C# 쓰레드 생성 System.Threading.Thread라는 클래스를 이용해서 쓰레드를 생성한다. Run()이라는 함수를 생성해서 메인 쓰레드에서 실행하고 별도로 생성한 쓰레드에서 동시에 실행시킨다. class Program { static void Main(string[] args) { new Program().DoTest(); } void DoTest() { // 새로운 쓰레드에서 Run() 실행 Thread t1 = new Thread(new ThreadStart(Run)); t1.Start(); // 메인쓰레드에서 Run() 실행 Run(); } void Run() { Console.WriteLine($"Thread#{Thread.CurrentThread.ManagedThreadId}: Beg.. 2023. 6. 1.
읽기 / 쓰기 프로퍼티(Property) 선언 및 사용 방법 읽기 / 쓰기 프로퍼티 프로퍼티(property)는 개체 데이터에 대한 액세스가 보호, 제어, 확인되지 않을 위험 없이 공용 데이터 멤버의 편리함을 제공합니다. 프로퍼티는 접근자(accessors)를 선언합니다. 기본 데이터 멤버에서 값을 할당하고 검색하는 특수 메서드입니다. set 접근자를 통해 데이터 멤버를 할당할 수 있으며, get 접근자는 데이터 멤버 값을 검색합니다. class Student { private string _name = "N/A"; private int _age = 0; public string Name { get { return _name; } set { _name = value; } } public int Age { get { return _age; } set { _age =.. 2023. 5. 31.
C# nameof Expression nameof() nameof 식은 변수, 형식 또는 멤버의 이름을 문자열 상수로 생성한다. nameof 식은 컴파일 타임에 계산되며 런타임에는 영향을 주지 않는다. 예제 코드 nameof 식을 사용하여 인수 검사 코드를 더 쉽게 유지 관리할 수 있다. nameof() vs ToString()의 차이점 ToString()은 런타임에서 평가된다. 그리고 포멧 변경이 가능하다. nameof()은 컴파일 타임에서 평가된다. 그래서 런타임에서 영향을 받지 않는다. 2023. 5. 26.
C# StackExchange.Redis로 Redis 사용하기 Redis 테스트에 사용할 C# 프로젝트를 생성해준다. Nuget에서 redis로 검색하고 StackExchange.Redis를 설치한다. 사전 준비 레디스 데이터베이스 이용하기 간단하게 redis 데이터베이스에 접근할 수 있다. IDatabase db = redis.GetDatabase(); GetDatabase() 메서드에서 반환된 오브젝트는 싸게 쓰고 버리는 오브젝트라서 별도로 저장하지 않아도 된다. 개별 서버들에 접근하기 유지보수 목적으로 특정 서버에 접속해야만 하는 상황이 발생할 수 있다. IServer server = redis.GetServer("localhost", 6379); GetServer() 메서드는 EndPoint 또는 IPAddress, Port등의 식별자를 받아서 오브젝트를 반.. 2023. 5. 26.