Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 문자열이 유효한 키워드인지 확인하는 방법

C#에서 문자열이 유효한 키워드인지 확인하는 방법

문자열이 C#에서 유효한 키워드인지 확인하려면 IsValidIdentifier 메서드를 사용하면 됩니다.

IsValidIdentifier 메서드는 입력된 값이 식별자(identifier)인지 여부를 검사합니다. 만약 해당 값이 식별자가 아니라면, 그 값은 C#의 예약어(키워드)라는 의미입니다.

예제에서는 CodeDomProvider를 생성한 뒤 IsValidIdentifier 메서드와 함께 사용합니다.

CodeDomProvider provider = CodeDomProvider.CreateProvider("C#");

CodeDomProvider.CreateProvider 메서드에 "C#"을 전달하면 C# 언어 규칙에 따라 식별자 유효성을 검사해 주는 공급자 인스턴스가 반환됩니다. 이 인스턴스의 IsValidIdentifier 메서드를 호출하면 해당 문자열이 변수명 등으로 사용할 수 있는 식별자인지, 아니면 언어 차원에서 예약된 키워드인지 판별할 수 있습니다.

전체 예제 코드

using System;
using System.IO;
using System.CodeDom.Compiler;

namespace Program {
    class Demo {
        static void Main(string[] args) {

            string str1 = "amit";
            string str2 = "for";

            CodeDomProvider provider = CodeDomProvider.CreateProvider("C#");

            // str1 검사
            if (provider.IsValidIdentifier(str1)) {
                Console.WriteLine("{0}은(는) 식별자입니다", str1);
            } else {
                Console.WriteLine("{0}은(는) C#의 유효한 키워드입니다", str1);
            }

            // str2 검사
            if (provider.IsValidIdentifier(str2)) {
                Console.WriteLine("{0}은(는) 식별자입니다", str2);
            } else {
                Console.Write("{0}은(는) C#의 유효한 키워드입니다", str2);
            }
        }
    }
}

실행 결과

amit은(는) 식별자입니다
for은(는) C#의 유효한 키워드입니다

위 예제에서 "amit"는 일반적인 변수 이름으로 사용할 수 있으므로 식별자로 판별되고, "for"는 반복문에서 사용되는 C#의 예약어이므로 키워드로 판별됩니다. 이처럼 IsValidIdentifier 메서드를 활용하면 사용자 입력값이나 동적으로 생성되는 이름이 C# 문법상 안전하게 사용할 수 있는 식별자인지 손쉽게 검증할 수 있습니다.