성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
[공진영] 안녕하세요 좋은글 감사합니다. 현재 제가 wpf로 관제 모...
[정성태] The Windows Registry Adventure #1: ...
[정성태] systemd for Developers I ; https:/...
[정성태] 엄밀히 object 타입의 인스턴스가 다른 타입으로 형변환 가능...
[정성태] 아래의 글에서 나오는 "Windows Application Pa...
[정성태] The history of calling conventions,...
[정성태] Secure and Deploy .NET Windows Form...
[정성태] Get Started with Milvus Vector DB i...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
닷넷
.NET 3.0
.NET 3.5
.NET 4.0
COM 개체 관련
Win32
Vista
Windows 7
Windows 8
Windows 서버
데이터베이스
웹폼 코딩 규약
윈폼 코딩 규약
공통 코딩 규약
명령행
레지스트리
기타
부모글 보이기/감추기
내용
<span> <br /> <pre class='code'> Properties vs public fields redux... ; http://blogs.msdn.com/ericgu/archive/2007/02/01/properties-vs-public-fields-redux.aspx </pre> <br /> 위의 글은 "단순" 공용 필드를 만들 것인지, private 필드/공용 프로퍼티로 만들 것인지에 대한 기준을 말하고 있습니다. 예를 들어 이런 상황이죠.<br /> <br /> <pre class='code'> [코드 1: 공용 필드로 만든 경우] public class Test { public string Name; } [코드 2: 공용 프로퍼티로 만든 경우] public class Test { private string name; public string Name { get { return this.name; } set { this.name = value; } } } </pre> <br /> 이런 경우 많으시죠? ^^ 저 역시 매번 고민이 되곤 하는데요.<br /> <br /> 말인즉슨, 공용 프로퍼티를 버전화에 대한 수단으로 바라봐야 한다는 것입니다. 그말을 듣고 보니 또 그런 것 같지요?^^<br /> <br /> C++ 클래스와 비교해 보면, public 멤버 변수를 두기 보다는 반드시(?) public 멤버 함수를 통해서 멤버 변수를 노출하게 되는 것과 비슷한 경우라고 볼 수도 있겠습니다.<br /> <br /> 이 글을 쓴 "Eric Gunnerson"은 한가지 예외 사항을 허락하고 있는데요. 버전화가 필요하지 않은 경우, - 그 예로 순수하게 내부에서만 연결 고리를 맺고 있는 클래스라면 굳이 공용 프로퍼티를 둘 필요가 없다는 것.<br /> <br /> 또 이렇게 말하면 헷갈릴 것 같으니까... 그냥 아예 이렇게 기준을 정하는 것이 어떨까요?<br /> <br /> <pre class='code'> internal 클래스의 공용 필드는 허용하되, public 클래스의 공용 필드는 허용하지 말자! </pre> <br /> 이거 쓰고 보니 떠오르는 것이 있는데,,, 이 글을 읽으실 분들께 한가지 의견을 구하고 싶은 것이 있습니다.<br /> <br /> 위의 "[코드 2]" 와 같이 이름을 만드는 경우에는 private 과 public 의 차이로 인해 CLS-compliant 스펙을 만족합니다. 그런데 만약 private 프로퍼티를 protected 로 승격을 시키게 되는 경우가 발생하면 그 스펙을 만족하지 못하게 되는데요. 혹시 이렇게 내부 필드와 외부 공용 프로퍼티에 대한 적당한 이름 규칙을 만들어 쓰신 분이 계시면 ^^ 소개 좀 부탁드리겠습니다.<br /> <br /> 저는 아직까지도 이 문제로 고민하고 있습니다. ^^;<br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </span>
첨부파일
스팸 방지용 인증 번호
1774
(왼쪽의 숫자를 입력해야 합니다.)