2011-01-13 2 views
1

저는 다른 클래스의 다소 복잡한 클래스를 중첩하는 프로젝트를 진행하고 있습니다. 이러한 클래스를 별도의 파일로 분리하면 어떤 종류의 순서를 유지하는 데 도움이 될 수 있습니다.코드를 읽기 쉽게 만들기 위해 파일을 분리하려고합니다. 과도한 들여 쓰기를 피하는 단축키가 있습니까?

그러나 하나의 중첩 클래스를 사용하면 파일에 다른 클래스가 없어도 각 줄 앞에 3 단계의 들여 쓰기가 필요하므로 수평 가독성의 한계를 너무 쉽게 맞춰야합니다. , 비록 간단한 문장으로도 (긴 함수/클래스/변수 이름을 가진 많은 함수 임에도 불구하고).

파일은 다음과 같습니다

namespace Example.Namespace1 
{ 
    public partial class ImportantClass 
    { 
     protected partial class Nested1 
     { 
      // I can finally start writing code here 
      public int AddOffset(int offset) 
      { 
       // Code inside of a method 
      } 

      public string ID{ get; protected set; } 
     } 
    } 
} 

을 그래서, 내가 좀 수평 공간을 절약 할 수 Nested1 선언에 대한 바로 가기를해야합니까 (예를 들어, protected partial class ImportantClass.Nested1이 작동하지 않지만, 뭔가처럼)?

+3

중첩하지 않는 것을 의미합니까? –

+0

모든 것을 한 줄에 넣을 수 있습니다. –

답변

1

대답은 아니요 인 것 같습니다.

여기에 몇 가지 대체 방법이 있지만 질문에 대한 대답은 입니다. C#에는 중첩 클래스에 대한 속기 표기법이 있습니까?아니요 아니요.

4

하지 마십시오.

간단한 내부 사용 클래스의 경우에만 중첩 클래스를 사용하지 마십시오. 다른 파일들로 그들을 분리하려고한다는 사실은 당신에게 뭔가를 말해줍니다. 즉 당신은 중첩 된 클래스들에 대해 조금 벗어났습니다.

코드를 공개적으로 사용하는 것은보기 흉한 추악합니다.

내부 수정자를 사용해야하는 경우 내부 수정자를 사용해야합니다. 이름 공간과 프로젝트 폴더는 모든 것을 정리하도록 도와줍니다.

+0

제 옵션은'ImportantClass' 네임 스페이스를 그들이 속한 것처럼 보이지 않는 새로운 함수로 혼란 시키거나 중첩 된 클래스에서 적어도 별거감을주기 위해 그들을 감싸는 것입니다. 이 프로젝트는 내 애완 동물 프로젝트가 아니기 때문에 네임 스페이스로 다시 고려할 옵션이 없습니다. – palswim

+1

네임 스페이스를 Example.Namespace1 네임 스페이스 아래에 두지 마세요. 즉 네임 스페이스입니다. Example.Namespace1.InternalStuff {... – Neil

+1

-이 클래스를 어셈블리 외부에서 사용 하시겠습니까? 내부에있는 경우 내부에만 표시하면 어셈블리의 공용 인터페이스에 포함되지 않습니다. – Neil

관련 문제