프로그래밍 C#언어 11

대리자(delegate)

C#언어의 컬렉션(Collection)과 C언어의 함수 포인터(Function Pointer)에서 계속 언급한 대리자(delegate)에 대해 아주 간단히 그림과 짧은 코드로 작성해보겠습니다. 대리자는 현실로 치면 중개업자 역할이라고 생각합니다. 이전 글에서는 요식업 중 배달의 민족으로 예시를 드렸는데 이번엔 스폰지밥으로 시각자료를 만들어보았습니다.이제 간단히 알아볼 코드를 살펴보겠습니다.class Program{ // 대리자 public delegate void MethodDelegate(); static void PrintHello() { Console.WriteLine("Hello"); } static void PrintWorld() { ..

컬렉션(Collections)

컬렉션이란? 아래의 기능을 사용하여 여러 개의 데이터를 하나의 구조로 그룹화하여 관리하는 기능입니다. using System.Collections;using System.Collections.Generic; //컬렉션에서 제네릭을 사용하기 위한 코드   데이터의 집합을 저장하고 조작하는데 필요한 다양한 기능을 제공하며, C#의 컬렉션 클래스와 인터페이스는 다음과 같은 주요 기능과 특징을 갖습니다.Array: 고정된 크기의 데이터 집합을 저장, 인덱스를 통해 요소에 접근할 수 있습니다.//배열 Array 타입 예시int[] arr = { 5, 1, 6, 3, 7 };Array.Sort(arr); //Sort, 오름차순 정리foreach (int i in arr){ Console.WriteLine..

템플릿(Template)

템플릿이란 용어는 C++에서 사용되는 용어이고 C#에서는 Generic이라고 표현합니다. 자료형 변환과 관련된 강력한 기능을 제공하며 다양한 데이터 타입에 대해 재사용 가능한 코드를 작성할 수 있습니다. 제네릭(Generic)은 클래스, 메서드, 인터페이스 등을 정의할 때 특정 데이터 타입을 일반화하여 코드의 재사용성과 타입 안전성을 높여줍니다. 컴파일 단계에서 타입 검사를 수행하여 런타임에 타입 정보를 안전하게 처리할 수 있습니다. 여기서 컴파일, 런타임을 그림으로 간단히 알려드리겠습니다. 여기서 제네릭(Generic)은 컴파일 단계에서 타입에 대한 검사를 수행하고 런타임에 정보를 안전하게 처리할 수 있도록 수행합니다. 이제 관련 코드를 확인해보겠습니다.using System.Collections; ..

상속3

상속 3번째 글입니다. 상속을 많이 다루는 이유는 한 프로젝트에 여러 스크립트를 다뤄야하는데, 그 과정에서 생기는 불상사를 방지하기 위해서입니다. 새로운 개념들을 다뤄보겠습니다.//Program.csclass Program{ static void Main() { Magician magician = new Magician(); magician.Use(); }}//////////////////////////////////////////////////////IElementinterface IElement{ void Use();}///////////////////////////////////////////////////////////////////ElementFir..

상속2

상속 (Inheritance) (tistory.com) 상속 (Inheritance)상속(Inheritance)은 'Parent - Child(부모클래스 - 자식클래스)', 'Base - Derived(기본클래스 - 파생클래스)', 'Super class - Sub class' 로 부릅니다.  상속은 Parent class의 데이터를 Child class에서 불러올 수 있습니hwangameinformation.tistory.com 상속(Inheritance) 개념은 게임에서 정말 중요한 개념 중 하나이기 때문에 이전에 썼던 상속글에 살을 붙여 두 번째 글을 쓰겠습니다. 상속에 활용되는 여러 개념과 코드들을 다루겠습니다.  상속(Inheritance) 상속은 class를 다룰 때 사용하는 개념으로 부모 c..

상속 (Inheritance)

상속(Inheritance)은 'Parent - Child(부모클래스 - 자식클래스)', 'Base - Derived(기본클래스 - 파생클래스)', 'Super class - Sub class' 로 부릅니다.  상속은 Parent class의 데이터를 Child class에서 불러올 수 있습니다. 그러나 Child class의 데이터를 Parent class에서 불러올 수 없습니다. 가져오면 짱구 아빠 얼굴처럼 프로그램이 경고와 오류가 있다합니다. /*sealed*/ class Parent //sealed문은 봉인과 같음. 자식이든 뭐든 아무도 못 쓰도록 포장하는 문{ public int parentA; //protected는 자식은 접근 되지만 외부는 접근할 수 없는 상속문. Program.cs..

구조체 (Structure)

//Value Type (값 형식) //값 자체를 가져오는 형식//Reference Type (참조 형식) //주소를 가져오는 형식//모든 클래스, 배열은 참조 형식, 값을 바꾸면 원본값도 바뀌는 방식//클래스 복사하면 얉은 복사struct Point{ //int m_iVal; //int mVal; //public int x = 100; //구조체는 선언과 동시에 초기화가 불가능. public int x; //public int y { get; set; } public int y; public int Y //Property(속성) { get { return y; } set { y = value; } } //함..

배열 (Array)

class Program{ static void Main() { //1차원 배열(Array) int[] arr = { 1, 2, 3 }; //C#의 배열 문법 구성, C#은 무조건 동적할당을 해야하기 때문에 기본 자료형 [ ]안에 크기 안들어감. ex)[2],[3] 오류 int[] arrAlloc = new int[3]; //이처럼 동적할당을 자료형에서 미리 하면 가능. 3의 크기 //공간만 만들기 버전 arr[0] = 10; //arr의 0번째 요소 10 Console.WriteLine("int Size: " + sizeof(int)+ " byte"); //일반 자료형은 sizeof가 가능 //Console...