본문 바로가기

[C#] Property

I'm 영서 2022. 9. 16.
반응형

접근 한정자 private을 사용해 필드를 선언하는 경우 

해당 필드에 접근하기 위해 GetClass() SetClass() 를 작성하는 경우가 많다.

 

이때 C#에서는  Property라는 개념을 통해 은닉성과 캡슐화를 지원한다. 

 

기존 코드의 경우

class MyClass
{
	private int number;
	public int getNumber(){ return number; } 
	public int setNumber(int number){ this.number = number;}
}

static void Main(string[] args)
{
	MyClass myClass = new MyClass();
	myClass.setNumber(100);
	Console.WriteLine(myClass.getNumber());
}

와 같이 get, set Method를 생성해주고 해당 Method를 사용했어야 했다..

 

하지만 Property를 사용하면 

class MyClass
{
	private int number;
	public int Number{get{return number;} set {number = value;}}
}

static void Main(string[] args)
{
	MyClass myClass = new MyClass();
	myClass.Number = 100 ;
	Console.WriteLine(myClass.Number);
}

아래와 같이 시각적으로 보기 좋은 코드로 재탄생한다.. 추가적으로 private 필드에 Property를 만드는것은 내부에서 사용하기 위함이니 적절히 잘 사용하자.

 

 

다만 은닉화 및 캡슐화의 이점이 필요하지 않은 경우라면 일반적으로 전역변수를 설정하여 쓰는것이 아주 조금의 차이지만 성능상의 이점이 있다.

 

 

반응형

댓글