Information Security Study
프로퍼티, 컬렉션, 일반화 프로그래밍 본문
프로퍼티
클래스에서 멤버 변수를 public으로 선언할 경우
- 편리함
- 은닉성 고려 x
프로퍼티 선언
- 멤버 변수의 은닉성 보장
- 변수에 접근하는 것과 같이 대입 연산자(=) 사용 가능
get { .. } 접근자는 멤버 변수로부터 값을 읽어온다
set { .. } 접근자는 멤버 변수에 값을 할당한다
set { .. } 접근자 안에 있는 value 키워드는 set 접근자의 암묵적 매개 변수
자동 구현 프로퍼티
- 멤버 변수 개수가 많을 경우 작성해야 할 내용을 줄이기 위한 프로퍼티
- 멤버 변수를 선언할 필요가 없다
- get, set의 기본형이 자동으로 작성된다
읽기 전용
- 프로퍼티 내부에 get만 지정
쓰기 전용
- 프로퍼티 내부에 set만 지정
컬렉션
: object 타입의 데이터를 담는 자료 구조
- 배열과 함께 .NET 프레임워크가 제공하는 다양한 컬렉션 자료 구조
- Array
- ArrayList
- Queue
- Stack
- Hashtable
ArrayList
- 배열과 가장 흡사한 구조를 가지고 있는 컬렉션
- 요소에 접근할 때는 첨자 연산자 []를 사용
- 원하는 위치에 데이터를 추가, 삭제가 자유롭다
- 배열과는 다르게 용량을 미리 지정할 필요가 없다
- 데이터를 추가, 삭제 시 자도으로 용량이 늘어나고 줄어든다
Queue
- 요소 추가와 삭제의 위치가 양 끝으로 나누어진 자료구조
- FIFO: 먼저 들어온 데이터가 먼저 빠져나간다
Stack
- 요소 추가와 삭제의 위치가 한쪽 끝에서만 이루어지는 자료구조
- FILO: 먼저 들어온 데이터가 나중에 빠져나간다
Hashtable
- 키와 값의 쌍으로 이루어진 데이터를 다룰 때 사용하는 자료구조
- 요소에 접근하기 위해 object 타입의 데이터 사용
- 해시테이블과 같은 데이터는 모든 요소를 탐색할 때 foreach 사용
Foreach
: Hashtable, Dictionary 등과 같이 기존의 for문을 활용해 순차적으로 데이터 탐색이 불가능할 때 사용하는 반복
일반화
: 특수한 개념으로부터 공통된 개념을 찾아 묶어 일반화 시키는 것
- 일반화 하는 대상 = 데이터 형식(Type)
일반화의 장점
- 일반화 대상 정의 시 < 와 > 사이에 일반화할 대상에 대해 작성 후 사용하기 때문에 데이터 파악이 용이
- 박싱, 언박싱 과정에 소모되는 불필요한 연산을 하지 않아 연산 속도 빠름
데이터 형식이 일반화 된 메소드
- 데이터 형식에 T(형식, Type) 기호 사용
- 메소드 이름 뒤의 < 와 > 사이에 T를 넣고 메소드 호출 시 T 대신 사용할 데이터 형식을 입력하면 메소드 내부의 모든 T가 해당 데이터 형식으로 변경
데이터 형식이 일반화 된 클래스
- 클래스 선언 시 클래스 이름 뒤의 < 와 > 사이에 T 정의
- 클래스 내부에 T 형식으로 사용할 변수, 반환 값 등을 설정
- 클래스 객체 생성 시 T 대신 사용할 데이터 형식을 입력하면 클래스 내부의 모든 T가 해당 데이터 형식으로 변경
List<T>
- ArrayList 컬렉션의 일반화 버전
- ArrayList와 다르게 하나의 컬렉션 변수에 하나의 데이터 형식만 담을 수 있다
Queue<T>
- Queue컬렉션의 일반화 버전
- Queue와 다르게 하나의 컬렉션 변수에 하나의 데이터 형식만 담을 수 있다
Stack<T>
- Stack컬렉션의 일반화 버전
- Stack와 다르게 하나의 컬렉션 변수에 하나의 데이터 형식만 담을 수 있다
Dictionary<TKey, TValue>
- Hashtable컬렉션의 일반화 버전
- Hashtable와 다르게 하나의 컬렉션 변수에 하나의 데이터 형식만 담을 수 있다
- Key와 Value의 쌍으로 이루어진 데이터를 다룰 때 사용
'밀집 사고 예측 시뮬레이션 프로젝트 > C# Study' 카테고리의 다른 글
변수, 클래스 (0) | 2024.03.14 |
---|