Lunetzsche's House

C# - 링큐(LINQ)

링큐는 Language Integrated Query의 약자다. 일단 지난 시간처럼 리스트를 만들어 불러오자. class OurClass { public string name { get; set; } public int achievement { get; set; } public string favourite { get; set...

C# - 해시테이블(HashTable)과 딕셔너리(Dictionary)

Delegate는 컴파일 시점이 아닌 프로그램 구동 시에 실행되며, 값이 아닌 코드를 매개변수에 넘기고 싶을 때 사용한다. 즉, 별도로 함수를 또 만들지 않고 한 번 사용하고 버리는 기능을 사용할 때 쓴다. 사용 방법은 다음과 같다. 한정자 delegate 반환형식 대리자이름(매개변수) private delegate int Calc(int a, i...

C# - 해시테이블(HashTable)과 딕셔너리(Dictionary)

해시테이블은 Key와 Value로 이루어져 있다. 배열과 달리 숫자 인덱스가 아닌 Key 값을 호출해야 Value값을 볼 수 있다. using System; using System.Collections; 해시테이블은 System.Collections 라이브러리에 들어있기에 반드시 이를 호출해줘야 한다. 해시테이블 예제를 만들어보자. Hasht...

C# - Generic(제네릭)

제네릭은 일반화라고 부르며 우리가 말하는 모든 데이터 형식 또는 함수의 타입에 대해 우리가 원하는 타입으로 고정시킬 수 있다. class A<T> { T[] array = new T[10]; } class B<T> { public T Addition(T result) { return resul...

C# - 배열(Array) - (2)

배열은 지정된 수만큼 메모리를 할당한다. 따라서 유동적이지 못하고, 부러 큰 배열을 사용했는데도 데이터가 작으면 할당되지 않은 메모리를 그만큼 낭비하게 된다. 우리는 그것을 해결하기 위해 동적 배열을 사용하는데, 그것을 두고 리스트(List)라고 부른다. 리스트의 선언은 다음과 같다. List<데이터타입> list; 그리고 이를 사용...

C# - 배열(Array) - (2)

다차원 배열을 이용하면 다양한 상황에서 이용할 수 있다. 예를 들어 미로를 만들 수도 있고, 게임에서 미니맵을 만들 수도 있다. 사용법은 배열과 유사하다. 단지 쉼표만 붙을 뿐이다. 데이터형식[ , ] 배열이름 = new 데이터형식[크기]; int[,] a = new int[5, 5] { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9,...

C# - for문과 foreach문

C#의 for문은 다른 프로그래밍 언어와 크게 다르지 않은 매커니즘으로 돌아가지만, 중요한 요소가 몇 가지 있다. for문은 다음과 같이 선언한다. for (초기값, 반복 횟수, 증감 연산자) { 실행할 명령문} 보기만 해서는 뭔가 어려워보인다. 하지만 다음 코드를 보면 정말 쉬운 매커니즘이라는 걸 알 수 있다. int[] a = new int...

C# - 배열(Array) - (1)

배열(array)은 다음과 같이 선언한다. 데이터형식[] 배열이름 = new 데이터형식[크기]; int[] a = new int[5]; 배열 a 는 int형 데이터를 5개 담을 수 있다. int[] a = new int[5] { 1, 2, 3, 4, 5 }; 이렇게 하면 배열 a에는 1,2,3,4,5가 들어있다는 이야기가 된다. 우리는 이것...

C# - static 한정자

static 한정자로 변수/함수/클래스를 지정하면 프로그램 내를 통틀어 단 한 개만 존재함을 의미한다. public static void StaticA() { Console.WriteLine(staticString); } 만약 클래스가 static이라면 그 이하 변수와 함수 또한 static을 부여받아야 한다. static class A...

C# - 추상(abstract) 클래스와 인터페이스(interface)

public abstract class A { public abstract string CW(); } public class B : A { public override string CW() { string str = "상속받았어요."; ...