C#에서 다른 명명 규칙을 사용하는 이유는 무엇입니까?[닫은]
-
03-07-2019 - |
문제
저는 최근에 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
public = pascalcase, 나는 개인 필드와 매개 변수 인수에 Camelcase 만 사용하는 경향이 있습니다.
이것을 읽으십시오 그래도 코딩 표준 Google에서 쉽게 검색 할 수 있으며 시작하기에 나쁜 장소가 아닙니다.