2011-04-27 6 views
0

자신을위한 코딩 "베스트 프랙티스"를 개발하기 위해 클래스 정의 내에서 클래스 멤버 변수와 getter/setter 속성을 정렬하는 방법을 사람들에게 물어보고 싶습니다. 나는 그것이 두 가지 방법으로 이루어진 것을 보았다. ...클래스 디자인 - 멤버 변수 및 속성 - 선언

(1) 클래스 멤버의 최상위에서 클래스 멤버 변수를 선언 한 다음 별도의 섹션에서 해당 멤버 변수를 가져 오거나 설정하는 속성을 선언하십시오.

Class MyClass 
{ 
    String firstName; 
    String lastName; 

    public string FirstName 
    { 
    get { return firstName; } 
    set { firstName = value; } 
    } 

    public string LastName 
    { 
    get { return lastName; } 
    set { lastName = value; } 
    } 

} 

(2) 클래스 최상위에서 클래스 멤버 변수를 선언하고 변수 선언 바로 아래의 get/set 속성을 정의하십시오.

Class MyClass 
{ 
    String firstName; 
    public string FirstName 
    { 
    get { return firstName; } 
    set { firstName = value; } 
    } 

    String lastName; 
    public string LastName 
    { 
    get { return lastName; } 
    set { lastName = value; } 
    } 

} 

는 사람들이 따라 가능하면, 이유에 대한 이유를 적어주세요 경향이 패턴 문제 나 개인 취향 일 수도 있지만. 감사.

+0

get/set에서 아무 것도하지 않기 때문에 자동 프록시를 대신 사용해 보았습니까? 그럼 당신의 질문 종류가 사라집니다 ... – forsvarir

답변

2

, 당신은 항상 나중에 변경할 수 있습니다

public string LastName {get;set;} 

가 개인적으로, 나는 모두를 넣어처럼 내 물건 클라이언트가 관심을 갖고있는 원칙 (즉, 공공 물건)이 파일 상단에 더 가야한다는 원칙에 따라 클래스 맨 아래의 멤버 변수. 많은 사람들이 회원을 선호하는 경향이 있지만 항상 내게 약간 뒤떨어져 보입니다 :)

+1

예, 항상 저 또한 거꾸로 보였습니다. 나는 당신이 그것을 사용할 수 있기 전에 당신이 무언가를 선언해야만했던 그날부터 숙취 일 것 같아요? – Grokys

+0

저는 회원이 구조적으로 표시하고 정렬 할 수있는 현대 IDE가 더 이상 필요하지 않다고 생각합니다. IDE에서 탐색 막대를 사용하여 99 %의 코드를 탐색 할 때의 차이점은 무엇입니까? –

+0

@FractalizeR : 솔직히 IDE의 탐색 모음을 사용하는 경우는 거의 없습니다. 나는 수업을 상당히 작게 유지하려고 노력하지만 키 버튼에 집중했습니다. 일반적으로 내 손을 마우스에 올려 놓는 것보다 페이지를 위/아래로 움직이는 것이 더 빠릅니다.가장 유용한 탐색 바로 가기는 'goto XXXX'제품군이며 키보드를 통해 쉽게 액세스 할 수 있습니다. 나는 어느 정도는 당신이 익숙한 것에 달려 있다고 생각합니다. – forsvarir

0

옵션 번호 1을 선호하고 필드 영역의 속성, 속성 영역의 속성, 생성자, 메서드 등을 둘러싸고 있습니다. 물론 영역을 사용하면 코드의 일부를 접어서 가독성을 향상시킬 수 있습니다 (예를 들어 생성자 만보고 싶다면).

개인적인 취향이지만 수업을 잘 정리합니다. 당신이 자동 속성을 사용하여, 세트/얻을 속성 아무것도하지 않는 경우 필요하면

+1

Eww, 나는 지역이 싫어. 코드를 살펴볼 때 코드가 무엇인지보고 싶습니다. 전에 보지 못했던 프로그램에 얼마나 자주와 서 "이 클래스의 생성자 만보고 싶다"고 생각합니까? 전체 수업을보고 싶습니다. IMO는 코드를 불필요하게 난독 화합니다. – Grokys

+0

각자 자기 자신에게! 나는 지역 애인이야, 내가 뭐라 할 수 있니? 컨설턴트로서, 필자는 코드를 항상 보았습니다. 필자는 전에 보지 못했지만 필자는 클래스의 특정 측면을 무너 뜨릴 수있어서 정말 좋았습니다. 내가 그 일을하고있어. – BrandonZeider

+0

글쎄, 각각 자신에게;) 각 멤버가 생성자/속성/메서드 등인지 알기보다 클래스가 무엇보다 중요한지 알게되었습니다. Ctrl + M, L을 사용하여 전체 클래스를 축소 한 다음 방법 당신은 어쨌든에 관심이 있어요. – Grokys

0

개인 선호도는 낮지 만, 옵션 1을 선호하지만 맨 아래에 개인 회원이 있습니다. 추론 : 구현보다 API가 더 중요합니다.

class MyClass 
{ 
    public string FirstName 
    { 
    get { return firstName; } 
    set { firstName = value; } 
    } 

    public string LastName 
    { 
    get { return lastName; } 
    set { lastName = value; } 
    } 

    String firstName; 
    String lastName; 
}