코딩/C# 3

[C#] 가비지 컬렉터(Garbage Collection)

가비지 컬렉터(Garbage Collection) C++에서는 메모리를 프로그래머가 관리한다. 즉, 동적 할당된 메모리를 전부 사용했다면 시스템에 돌려줘야 한다. 하지만, 프로그래머도 사람이기에 실수가 일어나는데 일어나는 실수는 다음과 같다. 1. 메모리 누수 메모리 사용이 끝났음에도 메모리를 해제하지 않은 경우 2. 이중 해제 메모리를 이미 해제 했는데 다시 해제하는 경우 (이미 해제된 메모리를 가리키는 포인터를 댕글리 포인터라고 한다.) 3. 해제 실수 아직 사용중인 메모리를 해제하는 경우 이런 불편함을 해결하기 위해 나온 기술이 자동으로 메모리를 관리하는 가비지 컬렉션(Garbage Collection)이다. 가비지 컬렉션을 지원하는 언어를 매니지드 언어(Managed Language)라고 한다. ..

코딩/C# 2022.08.12

[C#] 대리자

대리자 - 대리자는 C#에서 콜백을 맡아 실행하는 일을 담당하며 deldgate 키워드를 이용해 선언한다. - 함수를 보관할 수 있는 타입 - Invoke() 메소드로 보관된 모든 함수를 호출할 수 있다. - '값'이 아닌 '코드'자체를 매개변수에 넘기고 싶을 때 만듭니다. 한정자 delegate 함수(); 대리자는 메소드에 대한 참조이기 때문에 자신이 참조할 메소드의 반환 형식과 매개변수를 명시해줘야 합니다. 대리자 선언과 사용 예시 using System; namespace Delegate { delegate int MyDelegate(int a, int b);//대리자 선언 //int(int, int)타입의 함수를 보관 할 수 있는 대리자 //테스트 함수 제작 class Calculator { pu..

코딩/C# 2022.08.10

[C#] Stream

스트림 : 데이터의 흐름, 메모리와 저장매체의 사이로 스트림을 만들어 둘 사이에 접근하는것 파일 : 컴퓨터에 저장하는 데이터 묶음 디렉터리 : 파일이 위치하는 주소 즉 폴더 클래스 설명 File 파일의 생성,복사,삭제,이동,조회를 처리하는 정적 메소드 제공 FileInfo File클래스와 하는일은 같지만 정적 메소드 대신 인스턴스 메소드 제공 Directory 디렉터리의 생성,복사,삭제,이동,조회를 처리하는 정적 메소드 제공 DirectoryInfo Directory클래스와 하는일은 같지만 정적 메소드 대신 인스턴스 메소드 제공 하나의 파일에 한두가지 작업을 할 때는 File 이나 Directory 클래스를 이용하고 하나의 작업에 여러 작업을 할 때는 Info클래스를 이용합니다. 각 클래스가 제공하는 주..

코딩/C# 2022.08.10