Why do C# developers newline opening brackets?

I've spent most of the last several years working mainly with C# and SQL. Every programmer I've worked with over that time was in the habit of placing the opening brace of a function or control flow

softwareengineering.stackexchange.com

C# 개발자들의 중괄호 style에 관한 글입니다. 재밌으니 읽어보시는 것도..

 

위 링크의 글에 따르면 예전 C가 개발되었을 때 컴퓨터 디스플레이의 상태는 지금의 디스플레이보다 작은 상태이기에, 수직 공간은 프리미엄이었다고 얘기합니다. 그래서 C스타일의 코드는 아래처럼 작성되죠.

if () {
    //do something
}

또한 C 프로그래밍 언어는 코드샘플을 보면 라인의 끝에 중괄호가 있는 것을 확인할 수 있습니다. 이로 인해 인쇄비용을 상당히 절약했다고 하네요.

 

근데 정말 중요한 것은 프로젝트 전체 또는 최소한은 주어진 소스 코드 파일 내에서의 일관성이라고 하네요. 

 

 중괄호를 다음라인에 작성하든 if문이 있는 라인에 작성하든 전체 파일에서의 일관성이 있는 코드가 이해력을 향상시킨다고 합니다. 중괄호를 다음 라인에 작성했을 때 장점은 코드를 긁어낼 때 상당히 편하게 긁어낼 수 있다는 장점이 있습니다. 

 

 개인적으로 코드라인이 길어지는게 마음에 안들어 C스타일의 코드를 좋아하지만, C#에서는 모든 중괄호는 다음 줄에 들어가는 것이 국룰인 듯 합니다. (Visual Stduio에서 지원하는 자동 포맷팅도 그렇고.)

 

스크립트 작성 규칙

if문 작성

1. if문 밑에 코드가 한 줄 들어가는 경우

if (!Path.IsPathRooted(linkXmlFilePath))
    absolutePath = Path.Combine(runInformation.managedAssemblyFolderPath, linkXmlFilePath);

 사실 위 처럼 if다음에 문장이 한 문장 밖에 없더라도 중괄호를 씌워주는게 좋을 수도 있습니다. 왜냐하면  저기서 코드라인이 더 추가되면 어차피 중괄호를 씌워주어야 하고, 잘못들여쓰기가 되어있으면 개발자가 원하는 로직대로 코드가 돌아가지 않아 디버깅하기 어려울 수도 있습니다.

 

 

접근제한자 작성

 접근제한자를 작성할 때 일일이 다 작성해주는 것과 디폴트값으로 나두는 것이 좋은 것인가에 대한 이야기입니다. 

public class AccessModify
{
    private int testVar; // 1
    int testVar2 // 2
}

위 상황에서 1번과 2번중 어떤 것이 나을까에 대한 이야기입니다.

 접근제한자는 상황에 따라 다른 디폴트값을 갖습니다. 예를 들어, 클래스 안에서 멤버들에 대해서는 private이 디폴트이고, namespace 안에서 클래스는 internal이 디폴트입니다. 따라서, 명시적으로 표시해주는 것이 좋은 코딩 습관입니다.

 

 

변수 Naming 규칙

https://www.csharpstudy.com/Guide/Guide-naming.aspx

 

자동 구현 프로퍼티 convention

https://stackoverflow.com/questions/12045711/is-there-any-c-sharp-naming-convention-for-a-variable-used-in-a-property/12045765

 

 

클래스 및 구조체 이름 네이밍

https://docs.microsoft.com/ko-kr/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces