.NET- 원하는 식별자가 키워드인지 감지하십시오
-
03-07-2019 - |
문제
.NET에는 단어가 주어진 .NET 언어의 키워드인지 감지하는 방법이 있습니까?
이 프로젝트에 상당히 간단한 코드 생성기를 사용하고 있으며 자동화를 시작하고 싶습니다. 지금은 각각을 손으로 수행하므로 발생하는 문제를 해결하는 것이 매우 쉽습니다. 그러나이 작업이 자동으로 시작되면 식별자로 사용 해야하는 단어가 키워드인지 여부를 감지하는 방법이 필요합니다. 나는 여전히 그것을 사용할 수 있습니다. 단지 그것을 올바르게 인용하면됩니다.
나는 단순히 인용 할 수 있다는 것을 안다 모든 것 생성하지만 생성 된 코드를 예쁘게 유지하고 싶습니다 :)
내가 인용해야 할 것들의 예 :
vb: Public [Class] As String = "CLASS"
c#: public String @class = "CLASS";
해결책
아마도 당신은 찾고 있습니다 IsValidIdentifier
[
IsValidIdentifier
] 값이 언어의 규칙에 맞는 경우에만 [s] true를 반환합니다. 키워드와 충돌하지 않습니다.
CreateEscapedIdentifier
테스트 식별자가 예약 된 또는 언어 키워드와 충돌하는지 여부, 그렇다면 언어 별 탈출 코드 형식과 동등한 이름을 반환합니다.
예를 들어:
CSharpCodeProvider csProvider = new CSharpCodeProvider();
bool isValid1 = csProvider.IsValidIdentifier("class");
// returns false
string escapedId1 = csProvider.CreateEscapedIdentifier("foo");
// escapedId1 = "foo"
string escapedId2 = csProvider.CreateEscapedIdentifier("do");
// escapedId2 = "@do"
string escapedId3 = csProvider.CreateEscapedIdentifier("AndAlso");
// escapedId3 = "AndAlso" (not reserved in c#)
VBCodeProvider vbProvider = new VBCodeProvider();
string escapedId4 = vbProvider.CreateEscapedIdentifier("AndAlso");
// escapedId4 = "[AndAlso]" (reserved in VB)
귀하의 요구를 충족시키기 위해이 시설을 확장/사용하는 것이 너무 어렵지 않은 것 같습니다.
제휴하지 않습니다 StackOverflow