기타

XNA로 게임만들기 - 2. 강의에 앞서 C#의 문법

by 재훈군 posted Aug 03, 2012
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

1. 용어

 

namespace - 직역하면 이름 공간이라는 말이 되죠. 이 네임 스페이스 라는 것은 클래스나 구조체나 딜리게이트 등을 담는 아주 큰 바구니라고 생각하면 되고 C# 프로그램의 가장 기초적인 부분입니다.

class - 클래스라고 한다. 이는 "오브젝트"라고 불리기도 하고 이는 같은 기능군을 담는 주머니라고 생각하면 된답니다.

method - 다른 언어에서 함수나 변수나 구분해서 불렀지만 C#에서는 메서드라는 공통된 명칭을 사용합니다. 구분해서 부르는 프로그래머도 있으니 주의하길 바랍니다.

 

1.png

 

2. 클래스

클래스안에 클래스를 짜놓을 수 있고, 클래스안에 여러 함수를 구현할 수 도 있고 포용력이 정말 대단합니다. 예를들어,

 

2.png

 

이런식의 코딩도 가능합니다만, 이렇게 코딩하는 사람은 참 드뭅니다.

3. 딜리게이트

3.png

이런식으로 사용하며 "함수를 대리실행 해 주는 변수"라고 생각하시면 됩니다.

C/C++식 용어로는 "콜백"이라고 부릅니다. 

 

4. 접근 수준.

접근 수준은 네가지 형태가 있습니다.

 

 

private

protected

internal

public

네임스페이스

X

X

X

X

딜리게이트

O

X

X

O

클래스

O

X

O

O

 

private/protected는 외부에서 그 메서드에 접근할 수 없다는 표현입니다. private는 상속받은 클래스에서도 접근이 불가능하고, protected의 경우는 접근이 가능하지요.

 

internal은 외부 접근이 가능한데, 같은 네임스페이스끼리만 또는 프로젝트안에서 정의된 메서드에서만 접근이 가능하다는 표시입니다.

public은 무조건적으로 외부 접근이 가능합니다.

 

5. static/const/readonly/virtual/partial/abstract

static

const

readonly

virtual/abstract

partial

정적 메서드임을 선언하는 선언자 입니다.

클래스를 인스턴싱 하지 않아야 사용할 수 있습니다.

이것은 상수 변수를 선언하는 선언자입니다.

readonly와 병행해서 쓸 수 없습니다.

읽기 전용 메서드를 만드는 선언자입니다.

하지만, 메서드중에서 함수 선언과 병행할 수 없습니다.

virtual

가상 함수 를 선언하는 선언자입니다. 본문을 선언해야 합니다.

 

abstract

추상 클래스나 추상함수를 선언하는 선언자입니다. 본문을 선언하면 안됩니다.

분리구현된 클래스임을 선언합니다.

클래스 이외에 사용될 수 없으며, 클래스 정의를 여러 파일로 나눠서 분산구현할 때 사용합니다.

 

6. 코드의 유효 범위.

모든 네임스페이스, 클래스, 함수, 속성 필드 정의는 {로 시작해서 }로 끝나야 하며, 네임스페이스나 클래스, 함수의 경우 맨 뒤에 ;가 등장해서는 안된다.

 

7. 속성필드와 이벤트

 

4.png

 

이렇게 됩니다.

 

속성 필드의 경우엔 그냥 변수를 넣고 빼는것처럼 쓰면 됩니다만 변수와의 차이점은,


ttP aa  = new ttP();

string Test = aa.PropertyTest;  --> 이 경우 PropertyTest 속에 정의된 "get" 이라는 코드 블럭이 실행되고 그 코드 블럭이 반환하는 값을 Test에다가 넣어 주게 됩니다.

aa.PropertyTest = "실험2"; -> 이 경우  PropertyTest 속에 정의된 "set" 이라는 코드 블럭이 실행되죠.

 

이벤트 필드의 경우엔

 

eventTest += new Example_Delegate(ttP_eventTest);

 

이런식으로 이벤트를 등록하거나

 

eventTest -= new Example_Delegate(ttP_eventTest);

 

이런식으로 이벤트를 해제하여 이벤트의 목적 함수를 정해둡니다. 그러면 클래스 내부에서

 

eventTest();를 호출해 주면 등록된 목적 함수들이 실행됩니다.

 

 

음, 정말 열심히 썻는데 얼마 안되네요...

이 정도면 충분합니다. 필요하면 그때 그때 설명하겟습니다.

그럼 다음 강부터는 트릭을 소개해 드리겟습니다 ^^

- C# 문법 끝

 

Visual C# Express Edition 2010 : http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-csharp-express

(여기서 언어를 "한국어" 로 맞추고 받아야 합니다. 그리고 30일 뒤에 MS사 홈페이지에 가입하면 제품키 무료로 발급해 주니 30일 시험판이라고 생각하지 마시구요 ^^ 제품키 입력하면 날자제한 풀리니 안심하시길 ㅋ)

(무료 사용 법위는 개인, 학교, 개인 사업체, 소규모 연구소 정도로 알고 있으니 안심하시고 사용하세요. 무료인 만큼 유료버젼보다 기능이 딸린답니다 ^^ 뭐 어둠의 루트를 통해서 Professional이나 Ultimate를 받으셔도 되구요 ^^ 근데 어둠의 루트는 비추...)

 

XNA Game Framework 4 : http://create.msdn.com/ko-KR/resources/downloads

(여기서 우측에 Download XNA Game Studio 4.0 라고 있습니다 그리고 그 아래에 DirectX SDK도 설치해 주세요.)

 

설치 순서는 비주얼 C# -> XNA 4.0 입니다 ^^

 

제 강좌 보고 게임 만드셔서 대박(?) 터지시면 소주 한잔 사시는겁니다 !! 꼭요!ㅋ