요즘 C#문법책을 보고있다
C#책을 보는 가장 큰 이유가 string str{get;set;} 이런 문법이 검색해도 잘 이해 안되서인데
이게 뭔지 왜 쓰는지는 잘 알았다 근데 왜 이걸 굳이 써야 되느냐?는 좀 문제일수밖에 없는데
잘 짜여진 C++에서 Instance.str = "abc"; 이런 문법을 거의 안쓴다
private:
string str;
public:
void SetStr(string s);
string GetStr();
이렇게 해서 Instance.SetStr("abc"); 이렇게 사용하는데,
고전 C++에서는 이런식으로 Get과 Set을 나눠 쓰게 되는데 이유 첫번째가 실수 방지, 두번째가 가독성이다
이 문법의 문제점은 변수 하나 추가하는게 매우매우 귀찮다는거다
C#은 이 단점을 극복해 프로퍼티라는 개념을 사용하더라. private로 나눈 이유는 실수방지가 가장 큰 목적이니 정말 친절한 언어라는걸 다시 느낄수 있었다
근데 단순한 {get;set;} << 딱 이 문법을 사용하는건 정말 의미가 없을수 밖에 없는데 물론 public 보다 get과 set을 사용하는건 가독성이 아주 조금 더 좋을수는 있지
하지만 이건 성능 측면에서 큰 손해를 보게 되는데 public 변수와 똑같은 문법으로 사용하는데 그 방식은 내부적으론 function을 사용한다는 거다
이걸 왜 쓰냐고 물어보니 그냥 똑같은건데 public 쓰면 다른 사람한테 욕 처먹는다고 한다.
실제로 돌아다니는 C#코드를 보면 거의 get set으로 도배된 코드들을 많이 접할수 있다
이건 C# 개발자들이 기본적으로 최적화나 세부적인 내용에 관심이 크게 없다는거고,
어떻게 짜든 그냥 짜기만 하면 컴파일러가 잘 알아서 해주겠지? 라는 마인드를 그대로 보여주고 있다.
이상 C#린이가.
ㅂㅅ 소설쓰고 앉아있네. 수박 겉핥으니 병신되는 거...
수우우우박이 아니라 팩트 적어내려갓자나요
캡슐화 검색해서 다시 읽구와~
ㅋㅋ 공부하자 똥글 읽느라 시간 버렸네