컴퓨터프로그래밍/C# 24

C# - 작업환경 세팅하기

작업환경 세팅하기. 아래의 링크를 타고 설치핫면 됩니다. 링크 걸어두었습니다. ! ▶ Visual Studio 설치하기 ▶ Visual Studio 없이 컴파일하기 (Consol) ▶ Visual Studio 없이 컴파일하기 (Edit Plus) ▶ Visual Studio 없이 컴파일하기 (emEditor) 저같은 경우는 visual Studio를 이용하여 진행하겠습니다. 인스톨러를 설치하면 아래와 같이 뜨는데 빨간색 박스로 표시된것을 선택하고 설치하시면 됩니다.

C# - 리스트(List)

List에 대하여 알아보기 List는 크기를 정하지 않은 배열이라고 생각하시면 됩니다. 일반적인 배열은 동적으로 크기조절이 안되지만 List는 가능합니다. 리스트를 사용하면 배열의 크기에 대해서 신경쓸 필요가 없습니다. List 데이터 입력 및 출력 List를 선언하기List List이름 = new List (); List에 element(요소)추가하기List이름.add(element); using System;using System.Collections.Generic; public class ListExam { static void Main(string[] args) { List mylist = new List (); mylist.Add (2); mylist.Add (4); mylist.Add (6);..

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..

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..