일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
- hyperlink 쿼리스트링 바인딩
- 자바스윙
- XML
- ASP.NET
- 스크립트릿
- ajax
- 테이블또는 뷰가 존재하지 않습니다.
- ORA-00942
- 페이지 간 게시
- JDK1.5
- jsp
- json
- 이벤트 처리
- JavaScript
- Ajax댓글
- DataList컨트롤
- ASP.NET Error
- ASP.NET 회원가입
- RowCount 폐이징
- 우편번호검색
- Oracle 10g
- 자동완성기능
- prototype.js
- ASP.NET 방명록
- prototype
- SQL 명령어가 올바르게 종료되지 않았습니다.
- 웹표준
- Ajax한글 처리문제
- 객체생성
- Repeater
- Today
- Total
IT 쟁이
C# 프로퍼티 본문
Property 클래스의 메쏘드를 멤버 변수처럼 접근할 수 있게 한다.
(그러나 실제로는 메쏘드 이다)
일반적으로 객체 지향의 캡슐화 개념에서 클래스의 멤버 변수는 외부에서 직접 접근 및 변경을 허용하지 않도록 한다.
따라서 변수에 대한 접근과 변경은 별도로 노출한 공개 메쏘드를 통해서 이루어 지도록 한다.
이 공개된 메쏘드는 변수에 대한 사용자의 요청(접근 or 변경) 사이에 특정한 비지니스 로직을 포함하여
변수 값에 대한 투명성과 보안성을 강화 하기도 한다.
이러한 메쏘드를 갯터 , 셋터 라고 부른다.
* 프로퍼티 정의
public int Personid
{
get
{
return id;
}
set
{
id=value;
}
}
* 프로퍼티 사용예
Console.WriteLine("{0},{1}, {2}",room[i].Personid, room[i].Personname , room[i].Personage);
* 프로퍼티의 특징
1. 논리적인 멤버 변수
사용하는 입장에서는 단순히 변수처럼 값을 읽어오거나 셋팅하지만 프로퍼티 내부적으로 어떠한 비지니스 로직을 가질 수 있다.
(일반적인 메쏘드가 그러하듯이..)
즉 사용자가 입력한 값 그대로가 저장,호출 되는 것이 아니라 특정한 로직으로 필터링 혹은 가공된 데이터가 저장,호출될 수 있게 한다.
2. 접근과 변경(갯터,셋터)를 동일한 이름으로 사용 가능케 한다
메쏘드는 한 클래스 내에서 동일한 이름이 될 수 없다(오버로딩 말고)
그러나 프로퍼티를 사용하면 변수에 대한 읽기,쓰기를 동일한 이름의 프로퍼티를 통해서 수행할 수 있게 한다(변수처럼..)
3. static 프로퍼티도 생성 가능하다
4. 프로퍼티는 실제로 변수가 아니다.
프로퍼티는 결국 메쏘드 인 것이다. 따라서 변수처럼 메모리 주소를 가질 수 없다. 즉 클래스의 인스턴스가 생성될때 메모리에 올라가지 않는다.
따라서 주소값을 기반으로 하는 ref,out 키워드와 함께 인자로 사용될 수 없다
5. virtual,abstract,override 로 선언할 수 있다(일반적인 메쏘드와 동일하다)
6. void 형이 될 수 없다. (메쏘드와의 차이점)
자료출처 http://mkex.pe.kr