글 목록 1037

C# - 큐(Queue)

큐 (Queue) 큐 (Queue)는 먼저 추가된 데이타가 먼저 출력 처리되는(FIFO, First In First Out) 자료 구조로서 입력된 순서대로 처리해야 하는 상황에 이용된다. Queue는 맨 뒤(tail)에 데이타를 계속 추가하고, 맨 앞(head)에서만 데이타를 읽기 때문에 순차적으로 데이타를 처리하게 된다. 사용방법)Queue q = new Queue(); q.Enqueue(자료형에 맞는 리터럴);q.Dequeue(); 예제) using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) {..

C# - 구조체(Structure)

구조체의 개념 C#에서 크기가 작거나 내부가 그렇게 복잡하지 않을 때, 즉 작고 단순한 메소드를 포함하고 있는 선, 컬러와 같은 그래픽 요소 등을 구조체로 정의합니다. 클래스는 힙에 생성되는 참조 타입이다. 구조체는 스택에 생성되는 값 타입이다. 구조체는 클래스보다 메모리 소모가 덜합니다. 구조체 선언형식 struct 구조체명 { // 멤버변수, 메소드, } 위의 예제를 보시면, 클래스처럼 멤버변수를 가질수도 있고, 메소드 역시 가질 수 있습니다. 구조체를 사용하여 몬스터를 정의해 보겠습니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; nam..

AutoHotKey - 함수의 사용

함수의 사용 함수는 서브루틴 (Gosub)과 비슷합니다. 단, 호출자로부터 매개변수(입력)를 받을 수 있다는 점은 다릅니다. 게다가, 함수는 선택적으로 값을 호출자에게 돌려줄 수 있습니다. 다음의 간단한 함수를 연구해 보겠습니다. 두 개의 숫자를 받고 그 합을 돌려줍니다:Add(x, y) { return x + y ; "Return"은 표현식을 기대합니다. }기위의 코드는 함수 정의라고 알려져 있는데 "Add" (대소문자 구분 없음)라는 이름의 함수를 생성하고 그 함수를 호출하려면 누구라도 정확하게 두 개의 매개변수 (x와 y)를 제공하도록 확립합니다. 이 함수를 호출하려면, :=연산자로 그의 결과를 변수에 할당합니다. 예를 들어:Var := Add(2, 3) ; 숫자 5가 Var에 저장됩니다.또, 함수..

C# - 제네릭

제네릭이란 .NET 2.0에서 새롭게 추가된 개념으로 제네릭을 통해서 형식 매개변수(type parameter)라는 개념이 도입되었습니다. 형식 매개변수를 사용해서 클래스나 매서드를 사용하면 그것이 인스턴스화 될때까지 형식지정을 연기할 수 있습니다. 말로 이해하려고 하면 어려우니 아래를 살펴보면 이해가 더 빠를겁니다. 출처 : http://blog.naver.com/thx4alice/110023491588예제) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { class ARRAY4ALL { ..

C# - 인터페이스

인터페이스(Interface) 얼핏보면 추상클래스와 별로 차이가 없습니다. 개념 자체도 추상클래스와 같이 어떻게 작업할지 약속하는 기능과 비슷하죠 그럼 차이점이 뭘가요? 추상클래스와 인터페이스의 가장 큰 차이점은 바로 '클래스'냐 아니냐의 차이입니다. 추상클래스는 엄연한 클래스로 이를 구현하는 것은 '상속(extends)'입니다. 그러나 인터페이스는 '포함(implements)'라는 키워드를 통해 구현하게 되는데 이는 자바에서 매우 중요한 차이를 가집니다. 자바는 오로지 '단일 상속'만을 지원하기 때문에 추상클래스를 상속받는 클래스는 다른 클래스를 상속받을 수 없습니다. 그러나 인터페이스를 포함하는 클래스는 다른 클래스를 상속받을 수 있습니다. 추상클래스는 일반클래스와 달리 그 자신을 new 명령어를 통..

C# - 확장클래스, 분할메소드, 중첩클래스

확장메소드(Extension Method) 클래스의 기능을 확장시켜주는 메소드입니다 쉽게 말해서 이걸 사용하면 굳이 불러오거나 할 필요없이 곧바로 사용할 수 있습니다. 사용방법)namespace 네임스페이스명{ public static class 클래스명 { public static 반환형식 메소드명(this 확장대상형식 식별자, 매개변수..) { .. } }} 사용방법) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Extension; namespace Extension { public static class ExtensionMeth..

C# - 추상클래스

추상 클래스 추상클래스는 클래스의 설계도라고 인식할 수 있다. a팀장이 부모님이 급히 입원하셔서 b사원에게 자동차 에어백을 터트리는 메소드를 제작하라고 시켰다. b는 열심히 노력해서 아래와 같이 구현했다.airback(int 크기, int 색상){ ... } a팀장은 상황이 진정되자 회사에 돌아와서 b에게 작업한걸 요구했고. a는 깊은 빡침을 느꼇다. a가 원하는건 아래와 같은 작업이었기 때문이다.airback(int 터지는시점, int 에어백의 압력){ ... } 이런 상황을 막기위해서 추상클래스가 필요하게 되었다.※ 올래는 클래스로 설명해야 하지만 글이 늘어져서 메소드를 어거지로 끼워넣음. 인터페이스도같은 이유에서 존재하지만 인터페이스는 다중 상속적인 측면에서 단일 상속만을 할 수 있다는 차이점이 있..

C# - 메소드 메소드 재정의(override), 숨기기

메소드 재정의(override) ※ override와 overload를 햇갈리지 말자. 메소드 재정의(override)는 상속 관계의 클래스 사이에서 부모클래스의 메소드를 자식클래스가 부모의 메소드를 받아서 다른 형태로 바꾸어 사용하는 것을 말한다. 사용방법은 아래와 같다.//부모클래스가 애래와 같이 있다면class parent{ public virtual void Name() { Console.WriteLine("부모의 메소드"); }} // 자식클래스에서 상속받아 메소드를 재정의해서 사용class Child : parent{ public override void Name() { Console.WriteLine("자식의 메소드"); }} 예제) using System; using System.Colle..

C# - 상속

상속 상속 : 부모에게서 재산을 물려받는것 succeeded to the throne. father -ㅁ-... 다른 클래스의 메소드 변수를 그대로 가지고오는 것을 말합니다. 백문이불여일견~! 우선 사용하는 방법은 class 기반(부모) 클래스명{} class 파생(자식) 클래스명 : 기반(부모) 클래스명 { // } 예제) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Base { protected string var1 = "protected 변수"; protected internal string var2 = "protected in..