728x90

분류 전체보기 58

C# Event

두 개의 스크립트가 있을 때 다른 스크립트의 함수를 Event를 통해 불러오는 방법 namespace CSharp { class InputManager { Event 델리게이트와 이벤트는 한정자가 같아야함 public delegate void OnInputKey(); public event OnInputKey InputKey; public void Update() { if (Console.KeyAvailable == false) { return; } ConsoleKeyInfo info = Console.ReadKey(); if (info.Key == ConsoleKey.A) { InputKey(); } } } } namespace CSharp { class Program { 연결된 Inputkey가 vo..

C#/공부 2021.09.03

C# Generic 일반화

일반화를 하면 데이터 타입을 정해두지 않고 사용할 수 있다. 선언한 이름 옆에 를 적으면 일반화가 된다. static void Print (T input) { Console.WriteLine(input); } 데이터 타입이 무엇이 들어가든 상관없다. static void Main() { Print(1); Print(1.1f); Print("일"); } 함수 뿐 아니라 클래스에도 사용이 가능하며 마찬가지로 를 적으면 된다. class MyList { arr 배열에는 어떤 자료형도 들어갈 수 있게된다. T[] arr = new T[10]; } 인자를 추가하고 싶을 경우 T 옆에 문자를 추가해주면 된다. class MyList { arr 배열에는 어떤 자료형도 들어갈 수 있게된다. T[] arr = new T..

C#/공부 2021.09.02

C# Dictionary

Dictionary 키를 가지고 값을 찾는 자료구조 int로 Monster를 찾을 수 있음 Dictionary monsterDic = new Dictionary(); for (int i = 0; i < 10000; i++) { monsterDic.Add(i, new Monster(i)); } Monster mon; 일반적으로 호출했을 경우 딕셔너리 내 값이 없으면 크래시 발생 mon = monsterDic[15000]; 안전하게 호출하기 위해서 TryGetValue 사용 딕셔너리 내 값이 없어도 크래시가 발생하지 않으며 null을 반환 monsterDic.TryGetValue(77777, out mon); 입력한 key의 값을 제거 monsterDic.Remove(100); 모든 값을 제거 monster..

C#/공부 2021.09.02

C# 다차원 배열을 이용한 코드

// tiles 2차원 배열 int[,] tiles = { { 1, 1, 1, 1, 1 }, { 1, 0, 0, 0, 1 }, { 1, 0, 0, 0, 1 }, { 1, 0, 0, 0, 1 }, { 1, 1, 1, 1, 1 } }; public void Render() { // 기본 컬러를 저장 ConsoleColor defaultColor = Console.ForegroundColor; // GetLength로 2차원 배열의 n번째 배열을 가져올 수 있다. for (int y = 0; y < tiles.GetLength(1); y++) { for (int x = 0; x < tiles.GetLength(0); x++) { // tiles 배열의 [y번째 배열, x번째]의 값이 1이면 붉은색으로 출력 i..

C#/코드 2021.09.01

C# 다차원 배열

다차원 배열 일반 배열과 똑같이 초기화 가능 배열의 값을 직접 지정하거나 arr[0, 0] = 1; arr[1, 0] = 1; 배열 선언 시 초기화를 동시에 할 수 있다 // 값이 3개 있는 배열이 2개 int[,] arr = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } }; int[,] arr2 = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } }; int[,] arr3 = { { 1, 2, 3 }, { 4, 5, 6 } }; 가변 배열 // 첫번째만 채우고 두번째는 그때그때 채우면 된다. int[][] a = new int[3][]; 0번 째 배열의 값의 3개 이런 식으로 생성 가능 a[0] = new int[3]; a[1] = new int[5]; ..

C#/공부 2021.09.01

C# int 배열 관련 코드

제일 높은 값을 구하는 코드 static int getHighScore(int[] scores) { foreach문 이용 int highScore = 0; foreach(int score in scores) { if (score > highScore) { highScore = score; } } Max 함수 이용 highScore = scores.Max(); return 0; } 평균값 구하는 코드 static int getAverageScore(int[] scores) { 나누려는 수가 0이면 크래시가 일어나기 때문에 안전장치를 설정 if (scores.Length == 0) { return 0; } int sumScore = 0; int average = 0; foreach 이용 foreach (in..

C#/코드 2021.09.01
728x90