IEnumerable과 IEnumerator 그리고 foreach

✏️ 포스팅 목적 IEmerable, IEnumerator 항상 사용하는 List, Array 같은 Collection 들은 이 인터페이스들을 가지고 있는데, 어떤 것들인지 잘 알지 못하는 것 같아 공부를 해보려 한다! IEnumerable가 뭐야? 🧐 열거가능한(enumerable) 오브젝트를 위한 IEnumerator를 반환한다. 열거자(enumerator)는 컬렉션의 모든 컨텐츠에 접근하는 간단한 방법을 제공한다. 🍑 IEnumerable 1 2 3 4 public interface IEnumerable { IEnumerator GetEnumerator(); } IEnumerator가 뭐야? 🧐 iterator 객체 지향적 프로그래밍에서 배열이나 그와 유사한 자료 구조의 내부의 요소를 순회(traversing)하는 객체이다....

const와 readonly

상수가 뭐야? 🧐 상수(常數, constant)란 수식에서 변하지 않는 값을 뜻한다. 이것은 변하는 값 변수와 반대이다. 종류는 뭐가 있을까? 🧐 const readonly 값 형식: 데이터자체임으로 필드 변경이 불가능 하다. 참조 형식: 데이터에 대한 참조이기 때문에 참조 개체 자체는 변경이 불가능 하지만 개체가 만약 클래스 인스턴스라면 멤버 변수를 바꾸는 것은 가능하다. 💚 예시 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Program { private readonly static Test test = new Test(); static void Main(string[] args) { //개체 참조를 바꾸는 것은 불가능 test = test1;//오류!...

static: 정적

static… 여러곳에 사용을 해봤던 keyword 이지만, 정작 확실하게 아는걸까? 그래서 공부를 해보았다! static이 뭐야? 🧐 keyword 중 하나로 클래스, 필드, 속성, 메소드 등의 앞에 붙을 수 있다. 특정 개체가 아닌 형식에 속하는 정적 멤버를 선언 할 수 있습니다. static class에 대해 알아보자! 🧐 class 앞에 static keyword를 사용하여 정의한다. 정적 클래스는 모든 클래스 멤버가 static으로 구성되어있다. non-static 클래스와 다르게 인스턴스가 불가능하다.(new 사용 불가!) 이름 자체로 클래스 멤버에 접근 가능하다....

csharp

HashTable: 해시테이블

해시가 뭐야? 🧐 해시(Hash)는 키 값을 해시 함수(Hash function)으로 해싱하여 해시테이블의 특정 위치로 직접 엑세스하도록 만든 방식이다. 해시테이블이 뭐야? 🧐 해시 테이블은 연관배열 구조를 이용하여 키(key)에 결과 값(value)을 저장하는 자료구조이다. 연관배열 구조(associative array)란, 키(key) 1개와 값(value) 1개가 1:1로 연관되어 있는 자료구조이다. 따라서 키(key)를 이용하여 값(value)을 도출할 수 있다. key 와 value는 일대일 매핑으로 같은 value값을 가질 순 있어도, 같은 key값은 가지지 못한다. 1. 해시테이블(HashTable) 클래스 Non-generic 클래스....

unity

GarbageCollection: 가비지 컬렉션

가비지 컬렉션가 뭐야? 🧐 게임이 실행이 될 때, 메모리를 데이터를 저장하기 위해 사용을 한다. 메모리엔 코드(실행할코드), 데이터(전역변수, 정적변수), 스택메모리(값타입/지역변수)와 힙메모리(사용자동적할당역역/레퍼런스타입)가 있는데, 가비지 컬렉터는 힙메모리를 청소하는 역할이다. 그렇다면 왜 스택메모리를 청소해주는 것은 없을까? 필요없기 때문이다. 스택메모리에 저장되는 데이터들은 스코프를 벗어나면 메모리가 즉시 해제가된다. 이와 반면에 힙메모리는 스코프를 벗어나도 즉시 메모리 해제가 이루어지지않는다. 힙메모리에서 사용하지않는, 불필요한 메모리들을 정리해 다시 사용이 가능하도록 작업하는 것이 바로 가비지 컬렉션이다. 힙 변수생성할 때 무슨 일이 일어날까? 🧐 힙공간에 사용가능한 메모리가 있는지, 변수를 할당할 수 있을 지 확인한다....

100%