본문 바로가기

강좌

박준호님의 C# 강좌 - C# 객체 소멸과 Garbage Collection 객체의 생성과 소멸 객체의 생성 new 연산자를 사용하여 class의 instance인 객체(object)를 생성 이 때 객체가 생성되는 곳이 Managed Heap 객체의 소멸 C++ 같은 경우 소멸자(destructor)를 정의하여 메모리 관리(리소스 해제)가 가능 C# 에서는 Garbage Collector가 메모리를 관리 소멸자가 존재하지만 언제 호출되는지 예측할 수 없다. 때문에 소멸자는 사용하지 않을 것을 권장 불가피하게 객체의 소멸 작업을 해주어야 하는 경우 DB, 파일 및 네트워크 연결과 같은 것은 Unmanaged Resource 리소스 해제 시 IDisposable interface의 Dispose() 사용 Garbage Collector garbage new 연산자를 통해 객체를 생성.. 더보기
박준호님의 C# 강좌 - Exception(예외 처리) Exception(예외 처리) Exception : Application이 실행중일 때 발생하는 오류를 처리하는 것 .NET에서 제공하는 구조화된 예외처리 방법 .NET에서 exception은 하나의 object exception은 어떤 비정상적인 error 상황이 발생되었을 때, 그 문제에 대한 정보를 제공하는 객체 system이나 사용자가 정의한 모든 exception은 System.Exception에서 파생된 것 System.Exception class member property HelpLink 현재 예외와 관련된 도움말 파일에 대한 링크를 설정하거나 리턴 Message 현재 발생한 Exception을 설명하는 text를 리턴 Source Exception을 발생시킨 application이나 객체.. 더보기
박준호님의 C# 강좌 - 이벤트(Event) Event 어떤 사건이 발생했을 때 Application에 통보하는 방법 이벤트 발생기(publisher) : 이벤트 발생시 다른 객체에 이벤트 발생을 통보하는 일을 담당하는 객체 이벤트 처리기(Subscriber) : 이벤트 발생시 실제 호출될 method(이벤트 핸들러)가 등록된 객체 Event 선언 Event와 함께 사용될 delegate의 정의 확인 delegate는 호출할 method의 형식만 정의한 것이기 때문에 해당 method의 형식이 이미 지정된 delegate가 있다면 그대로 사용이 가능하다 public delegate void AnyEventHandler(object sender, EventArgs e); event 키워드를 사용하여 class에 event member 정의 publi.. 더보기
박준호님의 C# 강좌 - Delegate Delegate 한 객체의 Method에서 자기를 생성한 객체의 함수를 호출해야 할 필요가 있을 때 사용 한 시스템에 있는 객체가 다른 객체를 생성해서 그것을 사용하고, 또 그 생성된 객체가 자기를 생성한 객체의 함수를 호출하는 형태의 '양방향 호출' Windows API의 Callback function(콜백 함수)를 생성하기 위한 function point 기능을 더 안정적으로 확장 event와 함께 사용되어 .NET Framework에서 event 처리에 많이 사용 일반적인 method와 달리 compile 시에는 매개변수로 전달되는 method가 무엇인지 알지 못한다. Delegate의 정의 현재 정의 하는 delegate가 어떤 종류의 method를 나타내는지 compiler에게 알려주는 것을 .. 더보기
박준호님의 C# 강좌 - Collection / ArrayList / HashTable Collection 배열의 경우 인덱스를 사용하여 각 항목(element)에 접근하게 되는데, Collection은 인덱스를 사용하지 않고 모든 element에 순차적으로 접근할 수 있는 방법을 제공한다. 각 element에 순차적으로 접근할 수 있도록 허용하는 객체의 집합니다. 객체가 열거자(enumerator)라고 불리는 객체의 참조를 제공하면 collection이라 한다. 열거자는 Collection 내의 항목을 순차적으로 엑세스 할 수 있다. foreach를 통해 객체의 내에 순차적으로 접근 할 수 있도록 기능을 제공한다. Collection의 동작 Collection이 foreach와 함께 사용될 때 foreach는 collectionm의 Ienumrable interface로 부터 GetEnu.. 더보기
박준호님의 C# 강좌 - Namespace Namespace class와 각종 data type들을 그 연관성에 따라 그룹화시키는 논리적인 개념 Namespace를 중첩시켜 계층적인 data type을 구성 class의 이름 충돌을 해결하기 위한 용도로 사용 Namespace를 사용할 경우 이름이 길어지게 되는데, 이것을 해결하기 위해 Namespace Alias를 통해 Namespace의 별칭을 지정할 수 있다. namespace에 포함될 수 있는 것 namespace, class, interface, struct, enum, delegate Namespace의 범위 class는 그 class가 참조될 수 있는 범위를 가지고 있다. namespace가 지정되지 않으면 같은 namespace에서 처리 using System; class Utili.. 더보기