Game Develop(46)
-
C# Practicing(파일 입출력)
이번 시간은 파일 입출력에 대해 알아보자 파일 입출력 : 파일 입력, 파일 출력 텍스트 파일 입출력. 텍스트 파일 출력 = 텍스트 파일을 윈도우로 출력함. 텍스트 파일을 만듦. 텍스트 파일 입력 = 텍스트 파일의 내용을 읽어서 도스창에 보여지게 만듦. 텍스트 파일을 불러옴. ※ 콘솔창에서 보여지도록 하는게 입력이다. 유의하자!! 파일 입출력을 위해선 아래와 같은 네임스페이스를 불러와야한다. System.IO : IO = Input/Output : 입출력 다음은 파일 입출력을 위한 명령어 중 주로 쓰이는 것들을 적어놓았다. FileMode Append : 파일이 존재하면 파일을 열고 맨 끝부분부터 시작. 파일이 없으면 생성. Open : 해당하는 경로의 파일이 존재하면 열기. 존재하지 않으면 예외 발생 O..
2023.10.24 -
C# Practicing(스레드)
이번 시간은 스레드에 대해서 알아보려고 한다. Thread 스레드 : 운영체제가 CPU 시간을 할당하는 기본 단위이다. 스레드가 여러 개 = 여러 가지 일을 동시에(따로 따로) 처리할 수 있다는 얘기가 된다. 먼저 스레드를 사용하기 위해선 네임 스페이스가 필요하다. 스레드의 생성자는 매개변수로 메서드를 받는다. 그렇기 때문에 간단한 메서드를 만들어준다. 1초마다 한 번씩 실행이 된다. 다음은 Thread.sleep(1000을 쓰지 않았을때의 실행 결과다) 순식간에 10까지 찍혀버렸다.. 자 이 스레드를 정지키시는 데에는 두 가지 방법이 있다. 스레드 정지 Thread.abort() : 이 친구는 C# 스레드에 도가 트지 않은 이상 사용하지 않는다. 프로그램에 심각한 오류가 생길 수 있다. Thread.I..
2023.10.24 -
C# Practicing(C#의 자료구조)
오늘은 Insert 메서드의 마지막 문장 arr = resultArr;를 ref를 쓰면 왜 바꿔줄 수 있는지 자료구조로 설명해보겠다. C#의 메모리 영역은 크게 4가지로 나뉜다(Stack, Heap, Data, Code). 오늘 설명할 것은 이중 Stack과 Heap으로 설명할 수 있다. 그렇다면 Stack 영역과 Heap 영역은 무엇일까? Stack 영역 https://stillchobo.tistory.com/119 값 형식(Value Type)이 들어가는 메모리 공간이다. 일반적인 value type인 int, char, bool 같은 것이 있다. (string은 reference type이다) 사용자가 선언한 struct도 value type으로 stack에 저장된다. 선언되었던 코드 블록이 끝나면..
2023.10.24 -
C# Practicing(Generic Programming2)
오늘은 데이터 형식만 다른 메서드를 추가하지 않고도 다른 데이터 타입의 변수를 사용할 수 있는 메서드를 만들어 보려고 한다. 저번 시간에 만들었던 메서드를 다시 가져와 보자 이를 1번 코드라하겠다. 자 우리는 저번 시간에 int형 배열에 int형 변수를 집어넣는 insertNum 메서드를 만들었다. 하지만 char 형 배열에 char 형 변수나 string, float 등의 데이터는 넣어줄 수 없었다. 그렇다면 데이터 형식만 다른 메서드를 만들 수 밖에 없나? 다행히도 우리는 일반화 프로그래밍을 통해 메서드 하나만으로 int가 아닌 다른 데이터 타입의 변수도 함께 사용할 수 있다. 일반화 프로그래밍 일반화란 여러 개체들이 가지고 있는 공통된 특성을 부각시켜 한 개념이나 법칙을 성립시키는 과정 혹은 그 결..
2023.10.24 -
C# Practicing(Generic Programming1)
오늘은 10칸 짜리 배열에 원하는 인덱스에 원하는 정수를 삽입하는 코드를 작성해보고자 한다. 1 ~ 10이 차례대로 들어있는 10칸 짜리 배열이 있다. 이 배열의 세번째에 99를 삽입하려고 한다. 우선 배열을 만들어주자. 이제 2와 3 사이에(세번째) 99를 넣으려면 어떻게 해야할까? 가장 먼저 드는 생각은 배열의 세번째에(arr[2]) 99를 대입하고 싶지만, 배열은 데이터 공간이 연속적으로 나열 돼어있기 때문에, 데이터 공간을 잘라내서 그 사이에 새로운 공간을 집어넣는 것이 불가능하다. 따라서 배열의 공간을 넣을 숫자의 갯수만큼 늘린 배열을 하나 더 생성하여 주어야 한다. 숫자를 집어넣어줄 InsertNum 함수를 작성해보자. InsertNum의 매개변수로 변경할 배열과, 삽입하고자 하는 인덱스, 삽..
2023.10.24