나는 이것에 대해 다른 철학을 가지고 있다고 생각합니다. 관련 항목을 함께 그룹화하는 것을 선호합니다. 수업에서 일하기 위해 뛰어 다니는 것을 참을 수 없습니다. 코드는 흐름을 따라야하며 접근성 (공개, 개인, 보호 등)을 기반으로하는 다소 인공적인 순서를 사용하거나 인스턴스 대 정적 또는 멤버 대 속성 대 함수는 좋은 흐름을 유지하는 데 도움이되지 않습니다. 나는 공개 방법 본당 경우에 따라서 Method개인 도우미 메서드에 의해 구현되는 HelperMethodA, HelperMethodB등을 다음보다는 멀리 떨어져 파일의 서로 이러한 방법을 가지고, 나는 서로 가까이를 유지합니다. 마찬가지로 정적 메서드로 구현 된 인스턴스 메서드가있는 경우 이러한 메서드도 함께 그룹화합니다.
그래서 내 수업은 종종 다음과 같이 보입니다.
class MyClass {
public string Method(int a) {
return HelperMethodA(a) + HelperMethodB(this.SomeStringMember);
}
string HelperMethodA(int a) { // returns some string }
string HelperMethodB(string s) { // returns some string }
public bool Equals(MyClass other) { return MyClass.Equals(this, other); }
public static bool Equals(MyClass left, MyClass right) { // return some bool }
public double SomeCalculation(double x, double y) {
if(x < 0) throw new ArgumentOutOfRangeException("x");
return DoSomeCalculation(x, y);
}
const double aConstant;
const double anotherConstant;
double DoSomeCalculation(double x, double y) {
return Math.Pow(aConstant, x) * Math.Sin(y)
+ this.SomeDoubleMember * anotherConstant;
}
}