본문 바로가기

Archive/C#

(14)
[C# 고급문법] #4 인덱서 (Indexer) # 인덱서 (Indexer) * 개인적인 공부 기록용으로 작성한 포스팅 이기에 잘못된 내용이 있을 수 있으며, 추가하거나 수정할 내용이 있다면 지속적으로 수정해 나갈 예정입니다. # 인덱서 (Indexer) 인덱서(Indexer)는 인덱스(Index)를 이용해 객체 내부에 존재하는 데이터에 접근하도록 도와주며, 객체를 마치 배열처럼 사용할 수 있도록 해준다. 객체 내부의 데이터에 접근할 수 있는 통로 역할을 한다는 점에서 프로퍼티(Property)와 매우 유사한데, 프로퍼티와 다른 점은 "인덱스(Index)"를 이용한다는 것이다. 인덱스의 선언 형식은 다음과 같다. class 클래스이름 { 한정자 인덱서형식 this[형식 index] { get { /* index를 이용해 내부 데이터 반환 */ } se..
[C# 고급문법] #3 익명 메소드 (Anonymous Method) delegate # 익명 메소드 (Anonymous Method) * 개인적인 공부 기록용으로 작성한 포스팅 이기에 잘못된 내용이 있을 수 있으며, 추가하거나 수정할 내용이 있다면 지속적으로 수정해 나갈 예정입니다. *delegate(대리자)에 관한 내용에 대한 지식이 부족하다면, 다음 포스팅을 참고해 주세요. #2 Delegate # 익명 메소드 (Anonymous Method) 란? 이름을 갖고 있는 보통의 메소드들과 달리 익명 메소드는 이름을 갖고 있지 않습니다. 익명메소드를 사용하는 절차는 다음과 같습니다. 1. 대리자(delegate)를 선언한다. 2. 대리자의 인스턴스를 만든다. 3. 대리자의 인스턴스에 delegate 키워드와 함께 코드 블록을 작성한다. (익명 메소드 작성) 익명 메소드 선언 방식은 아래와..
[C#기초] 상수(Const) & 열거형식(enum) [목차] #1 상수(Const) #2 열거형식(enum) * 열거형식은 변수가 아닌 새로운 형식이다. - 개인적인 공부 내용을 기록한 글 이기에, 잘못된 내용이 있을 수 있습니다. #1 상수(Const) 값을 변경 가능한 변수와 달리 상수는 한번 정의하면, 값을 변경하는 것이 불가능합니다. 상수의 선언 방식은 아래와 같이 const 키워드를 가장 앞에 붙이고 차례로 자료형, 상수명 그리고 값을 지정합니다. const 자료형 상수명 = 값 상수는 선언과 동시에 값을 초기화 해 주어야 하며, 초기화 하지 않을 경우 에러가 발생합니다. #2 열거형식(enum) 같은 범주에 속하는 여러 개의 상수를 선언할 경우 enum 키워드를 사용합니다. 열거형식도 상수이긴 하지만, 따로 const 키워드를 붙여 주지는 않습..
[C# 기초] 프로그램의 구성 - 솔루션/ 프로젝트/ 소스 코드 (feat. Hello World!) #0 프로젝트 생성 #1 솔루션/ 프로젝트/ 소스코드 #2 명령 프롬프트에서 exe파일 실행하기 *개인적인 공부 기록용으로 작성한 글이기에, 잘못된 내용이 있을 수 있습니다. #0 프로젝트 생성 VisualStudio를 실행 > 새 프로젝트 만들기(N) 콘솔 애플리케이션 > 다음(N) 프로젝트 이름(J) 입력 후 다음(N) 대상 프레임워크 설정 후 만들기(C) #1 솔루션 / 프로젝트 / 소스코드 #0의 과정을 끝마치셨다면 기본적으로, Hello World! 문자열을 출력하는 소스코드가 작성되어 있습니다. F5를 눌러 실행시켜 봅니다. using System; namespace MyProject { class Program { static void Main(string[] args) { Console.W..
[C# 고급문법] #2 Delegate(델리게이트) & 콜백함수(CallBack) [목차] #1. 콜백이란? #2.1 델리게이트(Delegate) 선언 #2.2 .Invoke() #2.3 델리게이트 체인(Delegate Chain) * 개인적인 공부 기록용으로 작성한 포스팅 이기에 잘못된 내용이 있을 수 있으며, 추가하거나 잘못된 내용이 있다면 지속적으로 수정해 나갈 예정입니다. #1 콜백이란? 프로그래머는 함수를 호출할 때 콜(Call)을 하여 호출합니다. 예를 들어, Run() 이라는 함수를 사용하기 위해 콜(Call)을 하여, 함수를 실행해 달라고 요청을 하는 것이지요. 콜백(CallBack)은, 콜의 반대 되는 개념입니다. 사장과 비서의 관계와 같다고 할 수 있는데, 비서(Delegate)에게 사장(Function)이 돌아온다면, 내가(프로그래머) 말한 요청사항을 대신 전해달라..
[C# WPF] #0 WPF란 무엇인가? (WPF VS Winform) [C# WPF] #0 WPF란 무엇인가? *개인적인 공부 내용을 기록한 글이기에, 잘못된 내용이 있을 수 있습니다. WPF는, 2002년경 MicroSoft 에서 출시한 C#을 기반으로 하는 GUI(Graphic User Interface) 로 프로그램 사용자의 인터페이스(Interface)를 담당합니다. C#기반 GUI는 Winform 이라는 것도 존재하는데, 이번 포스팅에서는 WPF를 본격적으로 시작하기 전에, WPF와 Winform GUI의 특성과 차이점에 대해 정리해 보고자 합니다. [WPF] XAML 사용으로 인한, 디자인 영역과 프로그램 영역의 구분이 가능하다. 최신 기준에 부합하다. 속도가 빠르다. 데이터와 레이아웃의 구분이 가능하다. [Winform] 오래된 기술이기에, 좋은 자료를 구하기..
[C#] 7. OOP 다형성(Polymorphism) - Virtual 가상함수 & Override 오버라이딩 [C#] 7. OOP 다형성(Polymorphism) - Virtual 가상함수 & Override 오버라이딩 [목차] 다형성(Polymorphism)이란? Virtual 가상함수 & Override 오버라이드 * 개인적인 공부 기록용으로 작성한 글이기에, 잘못된 내용이 있을 수 있습니다. #1 다형성(Polymorphism) 이란 ? 다형성은 객체지향(OOP)의 3대 속성 중 하나로, poly(하나 이상) morph(형태) 가 합성된 그리스어 에서 유래 되었습니다. 예를 들어, Player 의 특성을 상속받는 Knight , Mage 자식 클래스 들이 있다고 가정해 보겠습니다. Player 부모 클래스에는 공격을 수행하는 Attack() 함수가 존재하고, Knight, Mage 자식 클래스에도 공격을 ..
[C# 고급문법] #1 프로퍼티(Property) & get/set 함수 [목차] get/set 함수 프로퍼티(Property) 자동구현 프로퍼티 * 개인적인 공부 기록용으로 작성한 포스팅 이기에, 잘못 된 내용이 있을 수 있습니다. #1 get / set 함수 프로그래머는 정보 은닉을 위해서, 클래스 내부의 속성들을 private 혹은 protected 로 선언 합니다.예를 들어 knight 클래스의 protected로 선언된 hp 변수가 있다고 가정해 봅시다. class knight { protected int hp; } hp 변수를 main 클래스에서 접근 하고자 하면, 아래와 같이 보호 수준 에러가 발생합니다. class Knight { protected int hp; } static void Main(string[] args) { Knight knight = new ..