성장일기
06/04 스마트팩토리 교육- 본문
º모든 연산자를 오버로딩할 수 있는것은 아니다
○클래스 간의 형변환
환율 고려안한 금전계산 오류 생길 수 있다
<소스>
ºimplicit(암시적, 명시적 형변환 둘 다 허용)
explicit은 명시적만
implicit operate를 오버로드했으므로 함시적 형변환을 할 수 있고 명시적으로 캐스팅연산자를 쓰는 것도 허용
ºexplicit
○C#의 클래스 확장
1.타입유형 확장
1.1 중첩클래스
public을 붙여야 외부에서 사용할 수 있다
internal-같은 파일 내부에 위치
1.2 추상클래스
->abstarct 예약어가 지정되고 구현 코드가 없는 메서드
부모클래스의 인스턴스를 생성하지 못하게 하면서 특정 메서드에 대해 자식들이 반드시 재정의하도록 하고싶을 떄
º특징
new를 사용해 인스턴스로 만들 수 없다
추상 메서드를 가질 수 있다
(추상메서드는 중괄호가 없이(코드가 없이) 바로 세미콜론으로 끝남)
->public abstact void Draw();
<소스>
1.3 델리게이트
메소드를 참조하는 변수
반환이 void고 인자가 없는 메서드만 가리킬 수 있다
(시그니처가 같아야 함)
1.메서드의 반환값으로 델리게이트를 사용할 수 있다.
2.메서드의 인자로 델리게이트를ㄹ 전달할 수 있다.
3.클래스의 멤버로 델리게이트를 정의할 수 있다.
===================================
1.메서드의 반환값으로 메서드를 사용할 수 있다.
2.메서드의 인자로 메서드를 전달할 수 있다.
3.클래스의 멤버로 메서드를 정의할 수 있다.
위 예제를 한번의 함수 호출로 사칙연산 메서드가 모두 호출되는 예제
기존의 add값을 유지하고 substract 추가 multiply,divide도 추가(CalcDelegate가 다 들고 있음)
-일종의 배열형태
원래 하나씩 호출해야하는데 인자만 넣으면 폼이 돌아가서 한꺼번에 실행된다
자동화된 foreach문과 비슷
'프로그래밍언어 > C#' 카테고리의 다른 글
07/14 스마트팩토리 교육 - C# 복습 (0) | 2020.07.14 |
---|---|
07/13 스마트팩토리 교육 - C# 복습 (0) | 2020.07.13 |
06/03 스마트팩토리 교육 - 오버로드 (0) | 2020.06.03 |
06/03 스마트팩토리 교육-오버라이딩 (0) | 2020.06.03 |
06/02 스마트팩토리 교육 - Object,Array,this,base (0) | 2020.06.02 |