C# 구문 – 속성

1. 은폐

클래스 내부 필드의 정보 노출을 방지하려면 액세스 한정자를 protected 또는 private로 선언합니다.

Set 및 Get 함수는 외부에서 이 필드에 액세스하도록 정의됩니다.

 class Pig
{
	protected int weight;
	// Getter Get 함수
	public int GetWeight() { return weight; }
	// Setter Set 함수
	public void SetWeight(int weight) { this.weight = weight; }
}

Pig pig = new Pig();
pig.SetWeight(100);
Console.WriteLine(pig.GetWeight());



2. 속성

프로젝트의 범위가 방대해지면 이러한 기능을 하나씩 입력하면서 사용하기 어려울 것입니다.

속성을 사용하면 두 개의 함수를 만들 필요 없이 내부에서 하나로 관리할 수 있습니다.

get – 값을 검색하는 데 사용

설정 – 값을 설정하는 데 사용

public int Weight
{
    get { return weight; }
    set { weight = value }
}
Pig pig = new Pig();
pig.Weight = 120; // 값 넣기
int weight = pig.Weight; // 값 꺼내기
Console.WriteLine(weight);



01 set, get 중 하나만 사용하고 싶은 경우

protected int age = 7;

public int Age
{
    get { return age; }
}

02 내부만 설정하고 싶은 경우

액세스 한정자 집합이 액세스 한정자 비공개로 설정된 경우 외부에서 사용할 수 없습니다.

public int Weight
{
    // 값을 꺼내올때 사용
    get { return weight; }
    // 값을 넣을때 사용
    private set { weight = value; }
}


동일한 클래스 내에서 액세스할 수 있습니다.

public void PinkPig()
{
    Weight = 100;
}

3. 자동 구현 속성

필드를 선언하지 않고 코드 한 줄로 생성할 수 있다는 큰 장점이 있습니다.

public int Weight{ set; get;}

이 한 줄의 코드는 아래 세 줄의 코드와 동일합니다.

private int _weight;
public int GetWeight() { return _weight; }
public int SetWeight(int _weight) { _weight = value; }

또한 이 초기화 구문이 있습니다.

public int Weight{ set; get;} = 100

이 게시물은 MMORPG Part 1의 요약입니다.

https://www.inflearn.com/course/%EC%9C%A0%EB%8B%88%ED%8B%B0-mmorpg-%EA%B0%9C%EB%B0%9C-part1/dashboard