일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- C# delegate
- vim
- c언어
- jupyter lab
- gitlab
- 포인터
- Unity
- Python
- C언어 포인터
- github
- c# 추상 클래스
- 유니티
- Houdini
- docker
- git
- Flutter
- 다트 언어
- 구조체
- 도커
- jupyter
- 깃
- Algorithm
- c# winform
- c# 윈폼
- Data Structure
- 플러터
- dart 언어
- HTML
- c#
- C++
- Today
- Total
목록c# 프로퍼티 (2)
nomad-programmer
인터페이스는 메소드뿐만 아니라 프로퍼티와 인덱서도 가질 수 있다. 프로퍼티나 인덱서를 가진 인터페이스를 상속하는 클래스가 반드시 해당 프로퍼티와 인덱서를 구현해야 하는 것은 물론이다. 당연한 이야기지만 인터페이스에 들어가는 프로퍼티는 구현을 갖지 않는다. 인터페이스의 프로퍼티 선언이 클라스의 자동 구현 프ㅗ퍼티 선언과 그 모습이 동일하다. 다음은 인터페이스의 프로퍼티 선언 형식이다. interface 인터페이스이름 { public 형식 프로퍼티1 { get; set; } public 형식 프로퍼티2 { get; set; } } 다음은 프로퍼티를 갖고 있는 인터페이스와 이를 상속하는 파생 클래스의 예이다. interface INameInfo { string Name { get; set; } } class ..
* Python의 property, setter 데코레이션과 똑같다고 생각하면 된다. 객체 지향 언어라면 모름지기 "은닉성"을 표현할 수 있어야 한다. 객체의 데이터가 의도하지 않게 오염되는 것을 방지해야 하니까. C++나 Java에서는 private과 protected 접근 한정자를 이용해서 클래스 내의 필드를 외부에서 보이지 않게 감추고, 이 필드에 접근하는 메소드들을 public으로 따로 제공한다. C# 언어도 이 방법을 그대로 사용할 수 있지만, C# 언어는 이보다 더 우아한 장치를 제공한다. 그것이 바로 프로퍼티(Property)이다. 프로퍼티를 이용하는 이유? 은닉성과 편의성 예를 들어 다음과 같은 클래스가 있다고 해보자. 이 클래스는 int 형식 myField를 private로 갖고 있다. ..