1. 델리게이트 위임 : 대리자라고 불리는 것, 메소드 캡슐화에 사용, 특정 이름으로 대신하여 사용할 수 있도록 함 대리자 : 대리자는 이어서 학습할 이벤트의 기반이 됨, 인자의 경우 형식과 순서가 모두 같아야함 델리게이트 예시 delegate void SampleDelegate(int param); //델리게이트 정의 class DelegateClass { public void DelegateMethod(int param) { //델리게이트할 메소드 } } 2. 이벤트 이벤트 : 어떤 사건을 의미, 소프트웨어에서 버튼클릭/키보드입력 하는 것, 항상 대리자와 함께 사용됨 이벤트 처리기 등록의 예 Event = new DelegateType(Method); //이벤트 처리기 등록 Event += new D..
1. 연산자 중복 연산자 중복 : 시스템에서 제공한 연산자를 재정의 하는 것, 클래스만을 위한 연산자 연산자 중복 방법 - 수정자는 반드시 public static - 사용자 정의 형 변환 가능 2, 인터페이스 인터페이스의 의미 : 사용자 접속을 기술할 수 있는 프로그래밍 단위 인터페이스의 특징 - 지정어 interface 사용 - 멤버로는 메소드, 프로퍼티, 인덱스, 이벤트가 올 수 있으며 모두 구현 부분이 없음 - 다중 상속 가능 - 접근 수정자 : public, protected, internal, private, new 모두 5개 - 생성자 갖지 않으며 모두 public 속성을 가짐(static불가, 객체를 가질 수 없음) 인터페이스 추상 클래스 - 다중 상속 지원 - 오직 메소드 선언만 가능 -..
프로퍼티(property) - 클래스의 private 필드를 형식적으로 다루는 일종의 메소드 프로퍼티의 정의 [property-modifiers] returnTypePropertyName { get { //get-accessor body } set { //set-accessor body } } 인덱서(indexer) - 배열 연산자인 '[]'를 통해 객체를 다룰 수 있도록 함 - 지정어 this를 사용하고, '[]'안에 인덱스로 사용되는 대개 변수 선언 인덱서의 수정자 - static만 사용할 수 없으며, 의미는 메소드와 모두 같음 - 접근수정자(4개), new, virtual, override, abstract, sealed, extern (총 10개) 인덱서의 정의 [indexer-modifiers]..
파생클래스 - 기존의 클래스를 베이스 클래스(base class)라 부름 - 새로 정의된 클래스를 파생 클래스(derived class)라 부름 상속(Inheritance) - 베이스 클래스의 모든 멤버들이 파생 클래스로 전달되는 기능 - 베이스 클래스를 정의하고 베이스 클래스로부터 파생 클래스 확장 - 클래스의 재사용성 증가 단일상속 : 베이스 클래스 1개 다중상속 : 베이스 클래스 2개이상 클래스의 정의 [class-modifiers] class DerivedClassName : BaseClassName { //member declarations } - 콜론(":") 옆에 베이스 클래스 이름을 명시 - 파생클래스는 베이스클래스의 모든 멤버를 상속받음 using System; class BaseClas..
클래스 : 객체의 구조와 행위 정의 객체(Object) : 같은 유형을 갖는 객체들로 분류할 수 있음 클래스 선언 형태 [class-modifier] class ClassName { //member delarations } - 처음에 클래스 수정자(modifier)가 선택적으로 나올 수 있음 - 수정자 : 수정자 다음으로는 지정어 class가 나옴, 일반적으로 첫문자를 대문자로 쓰는 것이 관례 - 클래스의 멤버 : 필드와 메소드, 프로퍼티와 인덱서, 연산자 중복, 이벤트 등 수정자의 특징 접근 수정자, new à 클래스 내에 정의되는 중첩 클래스일 경우 사용 public à 다른 프로그램에서도 사용 가능 internal à 같은 프로그램에서만 사용가능, 클래스 수정자가 생략된 경우 static à 정적클..
오버플로 검사문 : 오버플로를 명시적으로 검사 ㅇ 의도적 검사(checked문) checked { //오버플로가 발생하는지를 확인하려는 문장 } ㅇ 의도적 미검사(unchecked문) unchecked { //오버플로를 의도적으로 검사하지 않으려는 문장 } 표준 입출력문 : 입출력장치가 미리 정해진 입출력, 표준 입출력 메소드, 형식화된 출력 Console.Read() : 키보드로부터 한 개의 문자를 읽음 Console.ReadLine() : 한 라인을 읽어 string형으로 반환, 숫자값으로 바꿔야하는데 정수인 경우 int.Parse() 사용 Console.Write() : 화면에 매개변수 값 출력 Console.WriteLine() : 화면에 매개변수 값 출력 à 다음 라인으로 출력 위치 이동 usi..
문장의 종류 ㄴ 자료 처리를 위한 명령어들의 순서 집합 배정문 : 프로그램에서 사용하는 여러 종류의 값들을 기억장소에 저장하기 위해 사용 à var -exp 혼합문 : 여러문장을 묶어 그 문장들이 어디에 속해 있는지를 나타낼 때 사용 à { } 제어문 : 프로그램 실행 순서를 바꾸는데 사용 à 조건문, 반복문, 분기문 오버플로 검사문 : checked문, unchecked문 표준 입출력문 : 메소드 à Console.Read(), Console.ReadLine(), Console.Write(), Console.WriteLine() 리소스문 : 리소스를 획득하여 사용 후 즉시 해제하고자 할 때 사용하는 문자 à using문 동기화문 : 어느 한 시점에 하나의 스테드만이 접근할 수 있도록 제어시 사용 à l..
연산자 - 식의 의미를 결정, 피연산자가 어떻게 계산될 지 나타내는 기호 - 기본 연산자(산술, 관계, 논리, 증가 및 감소, 비트, 조건, 배정 연산자) + 검사 연산자 형 변환 - 데이터 타입이 지정한 타입과 호환 가능한지 검사 : is - 주어진 값을 지정한 타입으로 변환 : as