본문 바로가기
반응형

전공/C# 프로그래밍28

16강. 대리자와 이벤트 (2) 대리자 체인 대리자 인스턴스의 메소드 참조 C# 2.0부터는 대리자 인스턴스에 메소드를 쉽게 연결하도록 지원 기존에는 new 연산자를 사용하고 생성자의 인수로 메소드 이름을 입력 C# 2.0부터는 ‘=’ 연산자를 사용해 대리자 인스턴스에 메소드를 직접 대입 가능 대리자 체인 대리자 하나가 여러 개의 메서드를 동시에 참조 ‘+=’ 연산자를 이용하여 대리자 인스턴스에 여러 메서드를 결합 가능 대리자 하나가 여러 개의 메서드를 동시에 참조 ‘+=’ 연산자가 아니어도 다음의 방법들로 대리자 체인 생성 가능 대리자 체인에서 특정 대리자를 끊어낼 때는 ‘-=’ 연산자를 이용 using System; namespace DelegateChains { delegate void Notify(string message); .. 2023. 9. 11.
16강. 대리자와 이벤트 (1) 형식으로의 대리자 대리자 (delegate) 대리자는 메서드에 대한 참조 참고로, “참조”라는 용어는 객체의 주소를 가리키는 것을 의미 대리자에 메소드의 주소를 할당한 후 대리자를 호출하면 이 대리자가 메소드를 호출 대리자는 delegate 키워드를 이용해서 선언 클래스를 선언하는 위치와 같은 위치라면 어디든지 선언할 수 있음 형식(type)으로의 대리자 대리자는 인스턴스가 아닌 데이터 형식(type) 메소드를 참조하기 위해 대리자의 인스턴스를 생성하여 사용 대리자의 인스턴스는 메서드를 참조 대리자 인스턴스 생성부터 호출까지 이전 슬라이드의 사용예제를 통한 설명 : Callback은 반환 형식이 int, 매개변수가 (int, int)인 MyDelegate 대리자 인스턴스 MyDelegate() 생성자 호.. 2023. 6. 14.
15강. 예외 처리 기본/고급 예외 처리 예외 (Exception) 개발자가 생각하는 시나리오에서 벗어나는 사건을 예외라고 함 예를 들어, 배열의 범위 밖의 배열의 요소를 접근하려고 시도 예제코드 for 문에서 배열 범위 밖의 요소 접근 시, 예외 메시지 출력하고 프로그램 종료 배열 객체는 예외에 대한 상세정보를 IndexOutofRangeException 객체에 담은 후 Main() 메소드에 던짐 Main() 메소드는 예외를 CLR에 던짐 CLR까지 전달된 예외는 “처리되지 않은 예외”가 되고, 예외 관련 메시지 출력 후 강제 종료 using System; namespace Exception { class MainApp { static void Main(string[] args) { int[] arr = { 1, 2, 3.. 2023. 6. 14.
14강. Winform으로 만드는 사용자 인터페이스 (2) 폼 디자이너를 이용한 WinForm UI 구성 폼 디자이너를 이용한 WinForm UI 구성 폼디자이너 (Form Designer) 비주얼스튜디오 IDE 일부 컨트롤을 폼 위에 배치하고 프로퍼티를 변경하는 것을 마우스 클릭으로 수행 폼디자이너 사용위해 새 프로젝트를 “Windows Form 응용 프로그램” 템플릿으로 선택 도구상자와 폼디자이너를 이용해 UI 구성하는 방법 도구상자에서 컨트롤을 마우스로 끌어서 폼디자이너에 올려 놓음 폼 위에 올려진 컨트롤의 위치 및 크기, 프로퍼티를 수정 새 프로젝트 만들기 비주얼스튜디오 실행 후, [파일] → [새로 만들기] → [프로젝트] "Windows Forms 앱" 선택 후 프로젝트 이름 입력하고 프로젝트 생성 프로젝트 생성 후, 솔루션 탐색기에서 "Form1.c.. 2023. 6. 14.
14강. Winform으로 만드는 사용자 인터페이스 (1) WinForm 기반 사용자 인터페이스 (UI) .NET을 통한 사용자 인터페이스(UI) 생성 .NET 프레임워크 1.0부터 WinForm 제공 .NET 프레임워크 3.0부터 도입된 WPF(Windows Presentation Foundation) 이용 WPF가 더 다양한 효과를 제공하지만, 내용이 방대하여 익히기 어려움 비주얼스튜디오는 WinForm UI 구성을 위한 폼 디자이너 툴 제공 개발자가 그림 그리듯 UI 생성 가능 도구상자에서 버튼이나 콤보박스 등의 컨트롤을 끌어다 윈도우에 올려 놓음 뒤로는 해당 UI에 대한 C# 코드를 자동으로 생성 C# 코드로 WinForm 윈도우 생성 C# 코드로 WinForm 윈도우 생성 .NET에서 WinForm 클래스를 이용한 윈도우 생성 절차 System.Wind.. 2023. 6. 14.
13강. 일반화 프로그래밍 일반화 프로그래밍 (Generic Programming) 클래스 또는 메소드를 정의 할 때, 내부에 사용되는 데이터 형식(Data Type)에 식별자를 지정 보통 식별자로 “T” 를 많이 사용 식별자에 원하는 데이터 형식을 할당하여 해당 클래스 또는 메소드 사용 매개변수의 데이터형식이 다른 오버로딩 메소드들을 효과적으로 일반화 예를 들어, int 형 배열을 복사하는 메소드(왼쪽)와 string 형 배열을 복사하는 메소드(오른쪽) Int 형과 string 형을 포함해 31가지 데이터형식으로 오버로딩 메소드 작성해야 할 수도 있음 일반화 프로그래밍은 데이터형식을 일반화하여 효율적으로 메소드 정의 일반화 메소드/클래스 일반화 메소드 매개변수의 데이터형식을 일반화하여 정의한 메소드 메소드 이름 뒤에 꺽은 괄호 .. 2023. 6. 6.
반응형