목록C# (13)
멈추지 않고 끈질기게
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 7.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 C#에서 스레드를 생성하는 방법에 대해 알아보겠습니다. 1. Thread C#에서는 기본적으로 Thread 클래스를 통해 작업을 스레드로 실행할 수 있습니다. class Program { static void ThreadTest() { for(int i = 0; i < 10; i++) Console.WriteLine("Thread 실행"); } static void Main(string[] args) { Console.WriteLine("시작"); // ThreadPool 설정 Thread t = new Thread(Thread..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 7.0 버전을 기준으로 작성되었습니다. ※ 해당 포스팅은 하기 출처들을 참조하였습니다. - https://learn.microsoft.com/ko-kr/dotnet/csharp/whats-new/csharp-9#init-only-setters - https://www.csharpstudy.com/latest/CS9-record.aspx 이번 포스팅에서는 C# 9.0의 신규 기능 record, init 등에 대해 알아보겠습니다. 1. record 형식 record는 C# 9.0에서 추가된 형식 키워드로, class나 struct 앞에 붙여 레코드 타입의 class, struct를 정의할..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 7.0 버전을 기준으로 작성되었습니다. ※ 해당 포스팅은 하기 출처들을 참조하였습니다. - https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/enum - https://www.csharpstudy.com/CSharp/CSharp-enum.aspx 1. 열거형(enum) 열거형은 정수 형태의 값들을 별도의 이름으로 정의해 둔 상수들의 집합으로, C#에서는 다음과 같이 enum 키워드를 사용하고 내부에 열거형 멤버들을 선언하여 정의합니다. enum Direction { Up, // 0 Down,..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 7.0 버전을 기준으로 작성되었습니다. 0. 서문 변수 앞에 (타입명)을 붙이는 형변환 방식은 단순하고 강력하지만 그만큼 잘못된 형변환으로 인한 위험 부담도 동반합니다. 이를 막기 위해 C++의 경우 4종류의 타입 변환 연산자를 제공합니다(static_cast, dynamic_cast, reinterpret_cast, const_cast). C#에서도 이와 비슷하게 명시적 형변환을 위한 수단을 제공하고 있습니다. 1. Convert 클래스 C#에서는 명시적 형변환을 위한 함수들이 정의되어 있는 Convert 클래스를 제공합니다. 해당 클래스에는 'To(타입명)'과 같은 이름의 함수들이..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 문자열을 다룰 수 있는 StringBuilder 클래스에 대해 알아보겠습니다. 1. StringBuilder의 선언 및 초기화 StringBuilder 클래스는 System.Text 네임스페이스에 정의되어 있으며, 초기화 방식은 다음과 같습니다. //빈 StringBuilder 생성 StringBuilder sb1 = new StringBuilder(); //string 변수로 value 설정하며 초기화 StringBuilder sb2 = new StringBuilder("StringBuilder"); //int 값으로 capa..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 C#의 가비지 컬렉터에 대해 알아보겠습니다. 1. 가비지 컬렉터(Garbage Collector)란 C#, Java와 같은 언어에는 가비지 컬렉터(이하 GC)라는 메모리의 할당, 해제를 관리하는 관리자가 존재하기 때문에 사용자가 직접 메모리를 해제할 필요가 없습니다. 상당히 편리한 기능이지만, 그렇다고 사용자가 메모리 관리에 전혀 신경 쓸 필요가 없다는 뜻은 아닙니다. GC 호출 시 다른 스레드들을 일시정지하고 GC가 실행되기 때문에, 너무 잦은 GC 호출은 프로그램의 성능을 하락시킬 수 있습니다. GC는 이름 그대로 가비지를 ..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 C#의 Linq 구문에 대해서 알아보겠습니다. 1. Linq란 Linq는 Language integrated Query의 약자로, C#에서 SQL 구문과 흡사한 방식으로 원하는 데이터를 수집할 수 있는 구문입니다. 해당 구문을 사용하려면 System.Linq를 참조하여야 합니다. 간단한 Linq 구문의 구조는 다음과 같습니다. var output = from (변수 이름) in (데이터 출처) where (조건식) orderby (정렬 대상) (정렬 기준) select (수집 대상); from 뒤에 원하는 변수 이름을 설정하고,..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 C#의 대리자(Delegator) 개념에 대해 알아보겠습니다. 1. 대리자(Delegate)의 정의 프로그래밍에서는 데이터를 변수에 저장하여 함수에 전달하는 등 자유롭게 사용합니다. 이 개념을 함수에 적용시킨 것이 대리자입니다. 대리자를 선언한 뒤 해당 대리자 타입의 인스턴스를 함수로 초기화하면, 해당 대리자는 함수의 주소를 참조하게 됩니다. 또한 대리자 인스턴스는 다른 함수의 매개변수로 사용할 수 있습니다(매개변수로 사용되는 함수를 콜백 함수(callback function)라 합니다). 대표적인 예가 이전 포스팅에서 알아봤던..