Nice programing

C # 클래스 이름에는 어떤 문자가 허용됩니까?

nicepro 2020. 12. 4. 20:38
반응형

C # 클래스 이름에는 어떤 문자가 허용됩니까?


C # 클래스 이름에 허용되는 문자와 허용되지 않는 문자는 무엇입니까? 도와 주 시겠어요?

편집 : 지정합니다. 어떤 특수 문자가 허용됩니까? 하이테크 언어로 된 50 페이지 사양에 대한 링크는 저에게 많은 도움이 될 답변이 아니기 때문에 구체적으로 말씀해주십시오.

설명 : 내가 달성하려는 것은 클래스 이름을 구별 가능한 부분으로 나누는 것입니다. 예를 들면 다음과 같습니다.

클래스 Person @ WorkOffice @ Helper @ Class

{

}

그리고이 클래스 이름에서 Person, WorkOffice, Helper 및 Class 부분을 가져올 수 있도록 일종의 문자 또는 다른 것을 사용하는 방법에 대해 생각합니다.

그리고 예, 그것이 미친 짓이라는 것을 알고 있지만 그렇게해야합니다. 이 데이터를 클래스 메타에 저장하기 위해 속성과 리플렉션을 사용할 수 있다는 것을 알고 있지만 이것은 사실이 아니므로이 솔루션을 제안하지 마십시오.


사양 세부 정보는 여기에 있습니다 . 본질적으로 문자 클래스 Lu , Ll , Lt , Lm , Lo , Nl , Mn , Mc , Nd , PcCf의 모든 유니 코드 문자 (유니 코드 이스케이프 포함)입니다 . 첫 번째 문자는 예외이며 문자 ( Lu , Ll , Lt , Lm 또는 Lo 클래스 ) 또는 밑줄 이어야합니다 . 또한 식별자가 키워드 인 경우 앞에 @를 붙여야합니다. 그렇지 않으면 @는 선택 사항입니다.


C #의 유효한 식별자는 C # 언어 사양 , 항목 9.4.2에 정의되어 있습니다. 규칙은 매우 간단합니다.

  • 식별자는 문자 또는 밑줄로 시작해야합니다.
  • 첫 번째 문자 뒤에는 숫자, 문자, 커넥터 등이 포함될 수 있습니다.
  • 식별자가 키워드 인 경우 "@"를 앞에 추가해야합니다.

출처


유니 코드 범주는 http://www.dpawson.co.uk/xsl/rev2/UnicodeCategories.html 에서 찾을 수 있습니다 .

그리고 거기에서 그룹 내에서 대부분의 항목을 선택할 수 있습니다 ( 다른 사람들도 올바르게 지적한 specs 에서).

Lu, Ll, Lt, Lm, Lo, Nl, Mn, Mc, Nd, Pc, Cf

그러나 Visual Studio (또는 Resharper)가 반드시 모든 것을 좋아하지는 않지만 대부분 컴파일을 수행합니다. 예를 들어 30FB KATAKANA MIDDLE DOT 문자를 생각해보십시오. 잘 컴파일되지만 IDE에서는 잘 작동하지 않습니다. 하지만이 이상한 FE34 프리젠 테이션 양식 (Vertical WAVY LOW LINE)은 잘 작동합니다.

다음은 잘 작동하는 구분자입니다.

class Person〱WorkOffice〱Helper〱Class
{

}

그래도 이상한 문자를 사용하는 것이 좋습니다. 그러나 이것은 것처럼 보이는 특별한 경우를 위해 :)

편집 : 사양에 유니 코드 3.0의 문자를 허용한다고 명시되어 있습니다 . 나는 그것을 간과하고 많은 캐릭터가 올바른 그룹에서 왔지만 왜 작동하지 않는지 궁금했습니다. 자세한 내용은이 질문을 확인하십시오 .


thecoop에서 알 수 있듯이 유니 코드 문맥에서 '문자'라는 용어는 알파벳 문자보다 훨씬 더 광범위합니다.

기본적으로 많은 유니 코드 기호Windows 에서 입력하기 가 다소 어려울 수 있지만 식별자에 유효하게 사용될 수 있습니다 .

예로서:

  • Alt 키 누르기
  • 키패드에 '0394'입력
  • ALT 해제

코드에 그리스어 대문자 Delta를 추가합니다 ... 이것은 C #에 관한 한 유효한 식별자 문자입니다.

그러나 CLS 규정 준수는 창 밖으로 나간다는 점에 유의하십시오. 그러나 그 소리로 인해 어쨌든 그것에 대해 너무 걱정하지 않을 수 있습니다.


다음은 도움이 될 수있는 기사입니다. C # 코딩 표준 및 명명 규칙

표

간단히 말해서, 일반적으로 객체의 첫 단어 / 부분 / 문자는 소문자 이고 클래스는 대문자 입니다.

예를 들면 :

HtmlHelper htmlHelper; 
FtpTransfer ftpTransfer;
UIControl uiControl;

참고 URL : https://stackoverflow.com/questions/950616/what-characters-are-allowed-in-c-sharp-class-name

반응형