문제

저는 최근에 C#으로 작업하기 시작했는데, 관례는 변수가 메서드와 함께 대문자로 시작하는 것 같습니다.

이것이 이 작업을 수행하는 유일한 언어인가요? 그리고 그 이유는 무엇인가요?예를 들어:

Page Page = new Page();
Page.Action(); 

다른 언어에서는 다음과 같이 표시됩니다.

Page page = new Page();
page.action();

UML, Ruby, C++ 및 Java로 많은 작업을 해왔기 때문에 혼란스러운 다른 예가 있습니다.

내 질문은 다른 언어에서는 그렇지 않은데 C#에서는 왜 이런 방식으로 작업을 수행하는가입니다.

편집하다

다른 Stack Overflow 사용자들은 C#이 이 규칙을 따르지 않는다고 지적하고 있습니다. 이것은 단지 제 실수였습니다.

도움이 되었습니까?

해결책

실제로, 아니요 : C#의 컨벤션은 Camelcased Variable (및 필드) 이름 및 Pascalcase 메소드를위한 것입니다.

Page page = new Page();
page.Action();

다른 팁

아니요, 이것은 상당히 비표준 C# 코드입니다. 섹션 2.6의 .NET Framework 설계 지침은 로컬 변수 이름에 낙타 케이스 사용을 권장합니다.

공개 회원이 사용합니다 PascalCase, 개인 회원이 사용합니다 camelCase.

이것이 클래스를 지원하는 방법과 클래스를 정의하는 메소드를 명확하게 생각합니다.

public class Foo
{
    private Bar bar;
    public Bar Bar { get; set; }

    public void DoFoo()
    {
        makeFoo();
    }

    private void makeFoo()
    {
    }
}

내가 작성하거나 사용한 모든 C# 규칙 세트는 변수에 대한 낙타 사례를 지정합니다.

Page page = new Page();
MyClass myClass = new MyClass();

Pascal Case가 어디에서 사용되었는지 확실하지 않지만 C#에 내재 된 또는 표준이 아닙니다.

C#의 변수는 일반적으로 대문자로 시작하지 않습니다(물론 개발자의 구현에 따라 다름).아마도 당신이 혼란스러워하는 것은 재산.C#의 속성은 구문적으로 변수처럼 사용되지만(함수처럼 실행되는 것이 아니라 검색하거나 할당할 수 있다는 점에서) 두 작업 모두에서 비즈니스 논리를 캡슐화할 수 있습니다.

그러나 질문의 ​​더 넓은 부분에 대답하기 위해 속성과 메서드/함수는 일반적으로 다음과 같이 대문자로 시작합니다. 마이크로소프트 지침.

Pascalcase는 .NET보다 오래 전에 Microsoft의 컨벤션이었습니다. (Win32 API 등)

컨벤션은 또한 단일 환경 내에서 사용하는 것이 합리적입니다. .NET은 자체적으로 포괄적 인 환경이고 Microsoft-the Company는 다른 사람을 입양 할 필요가 없습니다.

또한, UML은 명명 대회를 가지고 있거나 UML이 명명 대회를 갖는 아이디어조차도 의미가 있음을 강력히 의심합니다. UML은 소프트웨어를 모델링하고 해당 소프트웨어의 협약을 따라야합니다.

다음 두 도구를 사용하여 어떤 규칙을 채택 해야하는지에 대해 많은 것을 알 수 있습니다.

fxcop : http://msdn.microsoft.com/en-us/library/bb429476(vs.80).aspx

스타일 콥 : http://code.msdn.microsoft.com/sourceanalysis

public = pascalcase, 나는 개인 필드와 매개 변수 인수에 Camelcase 만 사용하는 경향이 있습니다.

이것을 읽으십시오 그래도 코딩 표준 Google에서 쉽게 검색 할 수 있으며 시작하기에 나쁜 장소가 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top