C#

프로퍼티

게임만드는학생 2025. 1. 20. 00:16

클래스의 은닉성을 위해서는 외부에서 어떤 데이터에는 접근하지 못하게 막아야한다. 

그럴 때, private 키워드를 사용해 외부에서 접근을 하지 못하게 막고 만약 접근하려면 Get, Set 함수를 만들어서 

접근해야한다. 

프로퍼티는 이를 간편하게 해주는 문법이다.

 

먼저 .Get, Set함수를 구현해보겠다.

class Person
{
	string name;
    
    public string GetName(){return name;}
    public void SetName(string n){name=n;}
}

이처럼 두 개의 함수를 한개의 변수에 대해서 만들어야한다. 그런데 변수가 많아진다면 이러한 함수또한 엄청 많아질 것이다. 그래서 제공하는 문법이 프로퍼티이다.

 

class Person
{
	string name;
	public string Name
    {
    	get{return name;}
        set{Name=value;}
    }
}

위처럼 정의할 수 있다. set함수에서는 받아올 값을 value라고 작성한다.

main()
{
	Person p = new Person();
    
    p.Name = "Park";
    Console.WriteLine(p.Name);
}

그리고 프로퍼티를 정의했다면 변수처럼 외부에서 프로퍼티 이름으로 쉽게 접근이 가능하다. 

 

 

여기서 좀 더 간편하게 프로퍼티를 작성할 수 있도록 도와주는게 자동구현프로퍼티이다. 

 

class Person
{
	public string Name{get;set;}// = "Park" 처럼 초기화도 가능
}

위의 세줄코드가 다음과 같이 한줄로 표현이 가능하다. 

사용은 똑같이 사용가능하다. 

 

이 프로퍼티는 get, set에 특정 조건을 부여해서 사용할 수도 있다. 

set{
	if(무적이라면)hp수정불가
}

이런식으로 조건문으로 추가할 수도 있다.

'C#' 카테고리의 다른 글

예외처리  (0) 2025.01.20
delegate (대리자), Event  (0) 2025.01.20
인터페이스 ( Interface )  (0) 2025.01.19
일반화 ( Generic )  (0) 2025.01.19
배열, List, Dictionary  (0) 2025.01.19