본문 바로가기

Language/C#

C#에서의 Get / Set

C++에서는 멤버변수들을 priavte으로 두고 사용을 하고싶으면 Get / Set 함수를 직접 구현해야한다.


C#에서는 Get / Set을 자동으로 구현해주는데


public bool Level1 { get; set; } 

이런식으로 하면 자동으로 get, set을 구현해준다.


public bool Level1 { get; } 

이렇게하면 쉽게 Read Only Data로 선언할 수 있다.


public bool Level1 { set; } 

이렇게하면 쉽게 Write Only Data로 선언할 수 있다.


(get이나 set 하나만 구현하는 기능은 C# 6버전 이상부터 가능하다.

즉 오래된 unity의 경우 사용이 불가능한 문법이다.)



근데 public인데 get set이 의미가 있나 싶기도하고

그렇다고 private bool Level1 { get; set; } 이런식으로 하게되면


get, set도 같이 private이 되게때문에 외부에서 사용할 수 없다.



그래서 get / set 함수에도 private선언을 할수있다.


public bool Level1 { get; private set; }

으로 하면 외부에서 set은 못하지만 get은 할 수 있으며


public bool Level1 { private get; set; }

으로 하면 외부에서 get은 못하지만 set은 할 수 있다.

 

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

Dictionary  (0) 2019.02.27
ref, out, Tryparse Keyword  (0) 2019.02.26
is, as Keyworkd  (0) 2019.02.26
GC / SGen  (0) 2019.02.25
CLR / CLI / JIT / AOT  (0) 2019.02.25