C#의 배열을 한 마디로 정의하자면, 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 고정된 크기로 저장하는 데이터 구조이다. 배열의 크기는 고정되어 있으며, 한 번 설정되면 변경할 수 없다. 그렇기 때문에 정적 크기 배열이라고도 한다. 배열의 인덱스는 0 부터 시작된다.배열의 특징1. 고정 크기: 배열의 크기는 한 번 설정되면 변경할 수 없다.2. 타입 안정성: 배열은 동일한 타입의 요소만 저장할 수 있다.3. 효율성: 배열은 메모리의 연속된 공간을 차지하며, 인덱스를 통해 빠르게 접근할 수 있다.4. 다차원 배열: C#에서는 2차원 이상의 다차원 배열도 지원한다.주의사항 C# 배열은 간단한 데이터 구조를 관리할 때 매우 유용하지만, 크기를 동적으로 조정해야 하는 상황에서는 'List'와 같은 동적..
c#
*자료 구조 알고리즘을 공부하기에 앞서 알아야 할 것은 책으로 외우는 것은 전혀 쓸모가 없다는 것이다.애초에 실행활에 도움을 주기 위해 발전한 영역이기 때문에 실제 어떻게 활용할 것인지 고민하면서 공부해야 학습하기 용이하다.선형 구조 (Linear Structure) 선형 구조는 데이터 요소들이 일렬로 연결된 구조이다. 각 요소는 전후의 요소와 직접적으로 연결되어 있으며, 이런 연결은 순차적으로 이루어진다. 대표적인 선형 구조에는 다음과 같은 것들이 있다.배열(Array): 고정된 크기의 연속된 메모리 블록으로 이루어진 데이터 구조이다. 각 요소는 인덱스를 통해 접근할 수 있다.연결 리스트(Linked List): 각 요소가 다음 요소에 대한 포인터를 가지고 있는 구조이다. 단일 연결 리스트, 이중 연결..
이전 포스팅에서 OOP란 무엇인지, 왜 사용해야 하는지, 그리고 OOP의 핵심개념 4가지에는 무엇이 있는지 알아 보았고, 캡슐화란 무엇인지 알아 보았다. https://nybot-house.tistory.com/104 [C# Basics] 객체지향 OOP란 무엇인가? - 핵심 4개념과 개론 이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체 nybot-house.tistory.com 이번 포스팅에서는 OOP(Object Oriented Programming)의 핵심 개념 중 하나인 다형성에 대해서 알아 보자..
이전 포스팅에서 OOP란 무엇인지, 왜 사용해야 하는지, 그리고 OOP의 핵심개념들에는 무엇이 있는지 알아 보았다. https://nybot-house.tistory.com/104 [C# Basics] 객체지향 OOP란 무엇인가? - 핵심 4개념과 개론 이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체 nybot-house.tistory.com 이번 포스팅에서는 OOP(Object Oriented Programming)의 핵심 개념 중 하나인 캡슐화와 은닉성에 대해 자세히 알아 보자. 캡슐화(은닉성)란? ..
이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체Object 가 중심이 되서 프로그래밍하는 패러다임. C++ 는 여러가지 패러다임을 제공해 주는 멀티 패러다임 언어이다. 1) procedural 2) functional 3) OOP - ( Object-Oriented Programming ) 4) generic 를 nybot-house.tistory.com 게임 개발을 하는 데 있어 객체 지향 프로그래밍, 즉 OOP (Object Oriented Programming)의 중요성은 다시 말할 필요 없이 핵심..
static 키워드 C#에서 static 키워드는 클래스의 멤버(필드, 프로퍼티, 메서드 등)가 클래스 인스턴스에 속하지 않고, 해당 클래스 자체에 속한다는 것을 의미한다. 즉, 클래스의 인스턴스를 생성하지 않고도 해당 멤버에 접근할 수 있으며 클래스 이름을 통해 직접 접근할 수 있다. 이는 메모리 관리에서 효율적이며, 일반적으로 유틸리티 함수나 공유 데이터를 관리할 때 사용된다. Unity 개발에서 'static' 키워드의 사용은 특히 중요한데, 이는 게임 개발 시 흔히 발생할 수 있는 다양한 상황에서 전역적으로 접근할 필요가 있는 데이터나 기능을 제공하기 때문이다. 예를 들어, 게임 내에 단 하나만 존재해야 하는 게임 매니저, 설정, 유틸리티 함수 등을 구현할 때 'static'을 사용할 수 있다. ..
C#에서 생성자는 클래스나 구조체가 인스턴스화될 때 자동으로 호출되는 특별한 메서드이다. 생성자의 주요 목적은 객체를 초기화하는 것으로, 필드 또는 속성에 초기 값을 할당하는 등의 작업을 수행할 수 있다. 생성자는 클래스 또는 구조체의 이름과 동일하며, 반환 형식을 지정하지 않는다. 생성자는 객체 지향 프로그래밍에서 중요한 역할을 하며, 클래스의 인스턴스가 올바르게 초기화되어 사용될 수 있도록 보장한다. 기본 생성자 기본 생성자(Default Constructor)는 매개변수를 받지 않는 생성자이다. 사용자가 명시적으로 생성자를 정의하지 않으면, C# 컴파일러는 기본 생성자를 자동으로 제공한다. 그러나 사용자가 어떠한 생성자라도 정의하면, 컴파일러는 기본 생성자를 자동으로 제공하지 않는다. public ..
ref out 게시글에서 복사와 참조에 대하여 잠깐 다뤘었다. C++ 게시글에서 심도 있게 다루었던 내용이지만, C#에서도 한번 정리하고 넘어가야 맘이 편할 것 같아서 이번 게시글에서는 복사와 참조, 깊은 복사에 대해 다뤄보려고 한다. Struct 복사, Class 참조 우선 c#에서 struct는 기본적으로 복사를 하고, class는 참조를 한다. 예시를 통해 살펴보자. using System.Numerics; namespace CSharp { class Program { class Warrior { public int hp; public int attack; public void Move() { Console.WriteLine("Warrior Move"); } public void Attack() {..