[C#] 예외 처리 : try, catch, finally, throw
개요 안녕하세요. 이번 글에서는 C#의 예외 처리(exception handling)에 대해 알아보겠습니다. 프로그램 실행 중에는 0으로 나누기, 없는 파일 열기처럼 예상치 못한 오류(예외)가 발생할 수 있습니다. 이를 그냥 두면 프로그램이 멈추지만, try-catch로 …
C# 기본
개요 안녕하세요. 이번 글에서는 C#의 예외 처리(exception handling)에 대해 알아보겠습니다. 프로그램 실행 중에는 0으로 나누기, 없는 파일 열기처럼 예상치 못한 오류(예외)가 발생할 수 있습니다. 이를 그냥 두면 프로그램이 멈추지만, try-catch로 …
개요 안녕하세요. 이번 글에서는 C#의 인터페이스(interface)에 대해 알아보겠습니다. 인터페이스는 “무엇을 할 수 있어야 하는지”만 정해 둔 규격(계약)입니다. 구현 내용은 없고 메서드·프로퍼티의 목록만 정의하며, 실제 동작은 이를 구현하는 클래스가 채웁니다. 인터페이스 …
개요 안녕하세요. 이번 글에서는 C#의 프로퍼티(Property)에 대해 알아보겠습니다. 프로퍼티는 필드(field)를 안전하게 읽고 쓰기 위한 통로입니다. 필드를 그냥 public으로 열면 외부에서 아무 값이나 넣을 수 있지만, 프로퍼티를 쓰면 값을 읽을 때(get)와 …
이번 글에서는 xUnit에 대해 알아보겠습니다. 개발을 하다 보면 개발한 클래스나 함수에 대해 테스트가 필요할 때가 있습니다. 수동으로 값을 대입하거나, 화면상으로 눌러가며 테스트도 하지만 코드가 방대해지면 자동화된 단위 테스트는 필수가 됩니다. …
이번 글에서는 Named Pipe에 대해 알아보겠습니다. Named Pipe는 로컬 PC에서 서로 다른 프로그램끼리 데이터를 주고받는 IPC(Inter-Process Communication) 기술 중 하나 입니다. 프로그램 끼리 파이프에 이름을 붙여 통신을 한다고 보시면 됩니다. …
이번 글에서는 C#을 이용하여 dll을 만들고 WPF 프로그램에서 사용해보도록 하겠습니다. dll이 무엇인지는 쉽게 나오니 바로 만들어 보도록 하겠습니다. C#을 사용하여 dll을 만들 땐 클래스 라이브러리 프로젝트를 선택하면 됩니다. 라이브러리 이름은 …
이번 글에서는 lock에 대해 알아보겠습니다. lock은 공유 리소스에 대한 단독 액세스를 보장하는 문입니다. 아래와 같이 공유된 리소스에 두 개의 쓰레드가 동시에 접근한다고 가정해봅시다. 당연히 현재 값에서 1을 증가 시켰으니 temp …
C#의 checked와 unchecked 문은 오버플로우 검사 여부를 제어하는 키워드입니다. 정수 계산에서 값이 자료형의 범위를 벗어날 때 예외를 던질지, 그냥 넘어갈 지를 결정합니다. 정수 계산에서 오버플로우가 발생하면 System.OverflowException이 throw됩니다. 기본 명령문은 …
WPF 개발을 하다 보면 창에 표현되는 내부 UI가 창의 크기를 넘어가는 화면을 만들 때가 있습니다. 이럴 때 내부의 UI 크기는 그대로 두면서 스크롤이 필요해지는 상황이 생기는데 그 때 ScrollViewer를 사용하면 …
이번 글에서는 간단하게 변환기 IValueConverter에 대해 알아보겠습니다. 데이터 바인딩을 사용하면 객체 유형을 변환하는 작업을 수행하게 됩니다.데이터 바인딩 글을 보시면 string으로 입력한 색상이 Background에도 적용하는 것을 볼 수 있습니다. 이는 WPF의 …