티스토리 뷰
은닉성과 편의성 둘 다 잡을 수 있는 문법이 프로퍼티이다.
class ClassName
{
private int num1;
public int Num1
{
get
{
return num1;
}
set
{
num1 = value;
}
}
}
프로퍼티 선언 문법에서 get/ set을 접근자(accessor)라고 한다.
get은 필드의 값을 가져오고 set은 필드의 값을 할당한다.
외부에서 이 프로퍼티에 접근해서 값을 할당하는 것을 막고 싶다면
단순하게 set 접근자를 지워주기만 하면 된다.
위 코드처럼 작성을 하면 코드가 엄청 길어지고 중복 코드가 엄청 많은 기분이 들게 된다
그래서 C# 3.0버전에서 자동 구현 프로퍼티라는 것을 도입을 했다.
class ClassName
{
public int Num1
{
get; set;
}
public String Name
{
get; set;
}
}
이렇게 작성을 해주면 컴파일러가 알아서 자동으로 선언을 해주게 된다.
프로퍼티 생성자
객체를 생성할 때 프로퍼티를 이용해서 초기화를 할 수가 있다.
ClassName classs = new ClassName()
{
Num1 = 10,
Name = "하이"
}
세미콜론을 사용하는 것이 아니라 콤마를 이용해서 다음 필드에 값을 할당한다.
인터페이스의 프로퍼티
인터페이스는 메소드와 프로퍼티, 인덱서를 가질 수 있다.
상속받는 클래스는 프로퍼티도 반드시 구현을 해야한다.
인터페이스의 프로퍼티는 자동구현 프로퍼티와 모습이 동일하다.
interface ITest
{
string TestName
{
get; set;
}
}
class Test : ITest
{
private string testName;
public string TestName
{
get
{
return testName;
}
set
{
testName = value;
}
}
}'C#' 카테고리의 다른 글
| 9. 컬렉션 (0) | 2020.02.05 |
|---|---|
| 8. 컬렉션 (0) | 2020.02.03 |
| 6. 인터페이스와 추상클래스 (0) | 2020.01.29 |
| 5. 구조체 (0) | 2020.01.29 |
| 4. 클래스(4) - 오버라이딩 (0) | 2020.01.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- GRID
- visual studio code
- 차이점
- 동영상을
- 생활코딩#MySQL
- css
- HTML
- 관계형데이터베이스
- 기초
- Link
- 안드로이드 스튜디오
- javascript
- 선택자
- inline
- 생활코딩
- 조건문
- 문자열
- 알고리즘
- 글로
- C언어
- 객체
- 정렬
- 네트워크 프로그래밍
- TAG
- 언리얼엔진
- 변수
- 언리얼엔진4
- PHP&MySQL
- php
- 생활코딩#동영상을#글로#html
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
