2011-01-06 5 views
4

클래스 이름에 _을 사용하는 것이 안전합니까?클래스 이름에 밑줄 사용

.의 가장 적합한 대체품은 무엇입니까? (현재는 _입니다.)

+0

당신은 그것을 시도해 보았고 컴파일러가 말하는 것을 보았는가? – BoltClock

+1

@BoltClock : 이것은 일하는 것이 아니라 일하는 것보다는 최선의 일입니다. – Xaqron

답변

8

그것은, 한 번에 하나의 밑줄을 위해 그렇게 안전을합니다. C# 언어 사양, 섹션 2.4.2에서 :

두 개의 연속 된 밑줄 문자 (U + 005F)가 포함 된 식별자는 구현에 사용하기 위해 예약되어 있습니다. 예를 들어 구현시 두 개의 밑줄로 시작하는 확장 키워드를 제공 할 수 있습니다.

개인적으로 어쨌든 밑줄이있는 형식 이름은 사용하지 않으려 고합니다 ... ". 대체"로 무슨 뜻인지 잘 모르겠습니다. 컨텍스트를 제공 할 수 있다면 도움이 될 것입니다.

+0

밑줄 * 시작 * 이름 만 참조하지 않습니까? 그 곳 어디에도 없습니까? –

+0

'.' 대신에 주소가'.'을 포함하고 있기 때문에 웹 사이트에서 어떤 일을 할 클래스가 있다면'.'을 대체 할 선택은 무엇입니까? – Xaqron

+1

@Xaqron : 대부분의 웹 사이트에 전체 주소 (예 : StackOverflow, Slashdot, Xkcd 등)가 필요하지는 않지만 "Dot"을 사용합니다. –

2

예, 안전합니다.

도 "012"가있는을 고려해야합니다. 클래스 이름으로. 그들이 올 때 나는 상상할 수 없다. 아마도 ".NET"이라는 이름을 지정하고 싶다면 "DotNet"으로 할 수 있습니다. 클래스 이름은 간결해야하며 개인적으로 한 번에 밑줄을 사용하지 않았습니다. 나는 낙타 겉옷을 선호한다.

MSDN - Naming Guidelines을 읽는 것이 좋습니다.

+2

+1 '점'아이디어. 그래서 나는 'GoogleDotCom'을 사용할 수 있습니다.' – Xaqron

+0

@Xaqron : 네, 일반적으로는 필요하지 않습니다. (다른 속성을 통해 .com 웹 사이트라는 것을 나타낼 수 있습니다. 클래스 이름에있을 필요는 없습니다). –

+0

네임 스페이스 내에 포함 된 모든 유형은 기술적으로 점이 있음을 유의하십시오. CIL 레벨에서는 네임 스페이스와 같은 것이 없기 때문에 타입 이름은'Namespace.Typename'이 될 것입니다. 네임 스페이스 구조는 효과적으로 점을 네임 스페이스 구분자로 구문 분석하는 고급 언어 기능입니다. – cdhowie

0

다른 식별자와 마찬가지로 클래스 이름에 _을 사용하는 것이 안전합니다.

왜 클래스 이름에 논리 .이 필요합니까? 예를 들어 줄 수 있습니까? 두 연속 밑줄을 사용하지 않아야하지만

2

클래스 이름의 경우 _ 대신 CamelCasing을 사용합니다. 하나의 표준을 고수해야합니다. 둘 이상의 사람이있는 프로젝트에서 작업하는 경우 특히 중요합니다. 명명 규칙은 솔루션/조직 내에서 일관성을 유지해야합니다.

0

생성 CSharp 코드와 비슷하게 들립니다. 이 경우에는 System.Design 어셈블리에서 다음 도우미 루틴을보고 할 수 있습니다 : 다른 사람이 언급 한

http://msdn.microsoft.com/en-us/library/ms145952.aspx

static string FixName(string givenName) 
{ 
    return System.Resources.Tools.StronglyTypedResourceBuilder.VerifyResourceName(
     givenName, new Microsoft.CSharp.CSharpCodeProvider()); 
} 
1

으로는 안전합니다. 그러나 Microsoft의 Class Naming Guidelines 읽기 :

밑줄 문자 (_)는 사용하지 마십시오.

Jon Skeet이 언급했듯이 .Dot으로 대체하는 것이 좋습니다. 예를 들어 drive.google.com과 관련된 클래스의 이름은 DriveDotGoogle 일 수 있습니다. (나는 DotCom 부분을 불필요하게 길게하지 않기 위해 생략 할 수 있다고 생각한다.)

+0

MS의 도구 @ csharptest.net에 흥미가 있습니다. , "유효하지 않은 토큰은 밑줄 (_) 문자로 바뀝니다" – Adam

관련 문제