본문 바로가기
반응형

유니티 공부/C# 문법48

C# - SortedSet, SortedDictonary (기본생성자, IComparer생성자) SortedSet 중복된 요소를 허용하지 않고 정렬된 순서로 요소를 저장하는 집합이다. 이진 검색 트리로 구현되어 있어 요소의 삽입, 삭제, 검색 등의 작업이 빠르게 수행된다. 01 기본 생성자 아래 생성자는 기본적으로 오름차순으로 정렬된 SortedSet을 생성한다. public SortedSet () 예시 SortedSet sortedSet = new SortedSet(); 02 사용자 지정 비교자(comparer) 생성자 요소의 비교 방법을 사용자가 원하는 방식으로 지정하여 SortedSet을 생성한다. public SortedSet (System.Collections.Generic.IComparer? comparer); 예시 SortedSet sortedSet = new SortedSet(new .. 2024. 3. 17.
C# - Set과 HashSet(Add,Remove,Contains,IntersectWith,UnionWith) Set(Abstract data type) 01 중복을 허용하지 않는다. 중복된 값을 허용하지 않으므로 데이터의 유일성을 보장한다. 그러므로 같은 값을 여러번 저장하더라도 실제로 한 번만 저장된다. 02 순서를 보장하지 않는다. 비선형구조이기 때문에 순서의 개념과 인덱스가 존재하지 않는다. 그러므로 Set에 저장된 요소를 인덱스를 사용하여 접근할 수 없다. 값을 추가하거나 삭제할 때는 해당 값을 검색하여 기능을 수행해야한다. 03 Set은 언제 쓰면 좋을까? 중복된 데이터를 제거해야 할 때와 데이터의 존재 여부를 확인해야 할 때이다. HashSet 해시 테이블을 기반으로 구현된 집합(Set)의 자료구조이다. 이는 중복된 요소를 허용하지 않고 요소의 순서를 보장하지 않는다. 큰 장점으로는 빠르게 요소를 검.. 2024. 2. 20.
C# - Windows Forms 프로젝트 사용해보기 1. 새 프로젝트 만들기 - windows form 검색 2. Form 확인 3. 보기 - 도구상자 - 필요한 도구 선택 4. 버튼을 넣어보자 01 도구상자에서 버튼 클릭 그리고 우측버튼을 누르면 코드보기 클릭 02 button1_Click메서드 버튼이 눌러졌을때 실행되는 메서드이다. 여기에 버튼이 클릭되었을때 실행하고 싶은 코들르 작성하면 된다. private void button1_Click(object sender, EventArgs e) { } 2024. 1. 20.
C# 문법 - 확장 메서드(Extension Method) class MyInt { public static bool IsEven(int a) { return a % 2 == 0; } } class Program { public static void Main() { int a = 124; bool b = Program2.IsEven(a); } } 만약 IsEvent메서드가 int구조체에 소속된 메서드라면 아래와 같이 더 직관적으로 사용할 수 있을 것이다. class Program { public static void Main() { int a = 124; bool b = a.IsEven(); } } int구조체가 어떻게 어떻게 정의되어있는지 한 번 확인해보자 이 구조체에 IsEven메서드를 추가하고 싶다. 새로운 메서드를 추가하는 가장 쉬운 방법은 구조체안에 그.. 2024. 1. 19.
C# - await와 async Sum을 구하는 코드로 예시 namespace WinFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Run(); } private void Run() { } private int Calc(int n) { int result = 0; for (int i = 1; i Calc(10)); int sum = await task1; // 상태를 저정한다음 다른 UI처리 label1.Text = sum.ToString(); } Task처리 뿐만 아니라 다른 UIThread를 block하지 않기 때문에 다.. 2024. 1. 19.
C# - Thread vs Task 클래스 + EAP/APM/TAP Thread(스레드)CPU가상화이다. 그러므로 CPU가 없는데 많은 척하는 것이다.Multithreading(멀티스레드)하나의 프레스가 여러 개의 스레드를 동시에 실행하여 다중 작업을 수행하는 것을 의미한다. 이는 CPU의 가상화를 통해 마치 여러개의 CPU가 동시에 작업하는 것처럼 보이게 한다.스레드는 정말 가벼운 자원인가?스레드는(프로세스 보다 가볍지만)매우 무거운 리소스이다. 스레드를 하나 만드는데 필요한 공간비용과 시간비용DLL(Dynamic Link Libraries)는 외부에서 호출되는 함수,데이터,리소스등을 가진 코드 및 데이터 라이브러리이다. 여러 스레드가 DLL을 사용하는 경우 동시 접근에 대한 적절한 동기화 매커니즘이 필요하므로 이로 인해 리소스 소비가 증가한다. 컴퓨터에서 가장 적합한.. 2024. 1. 19.
반응형