Để kiểm tra một chuỗi có phải là từ khóa (keyword) của C# hay không, dùng CodeDomProvider.IsValidIdentifier. Nếu trả về false → là từ khóa hoặc không hợp lệ.
Ví dụ minh họa
using System;
using System.CodeDom.Compiler;
class Program
{
static void Main()
{
string str1 = "amit"; // Identifier hợp lệ
string str2 = "for"; // Từ khóa C#
string str3 = "class"; // Từ khóa C#
string str4 = "123abc"; // Không hợp lệ (bắt đầu bằng số)
var provider = CodeDomProvider.CreateProvider("CSharp");
CheckIdentifier(provider, str1);
CheckIdentifier(provider, str2);
CheckIdentifier(provider, str3);
CheckIdentifier(provider, str4);
}
static void CheckIdentifier(CodeDomProvider provider, string str)
{
if (provider.IsValidIdentifier(str))
Console.WriteLine($"\"{str}\" là identifier hợp lệ");
else
Console.WriteLine($"\"{str}\" KHÔNG phải identifier hợp lệ (có thể là từ khóa)");
}
}
Kết quả đầu ra
"amit" là identifier hợp lệ "for" KHÔNG phải identifier hợp lệ (có thể là từ khóa) "class" KHÔNG phải identifier hợp lệ (có thể là từ khóa) "123abc" KHÔNG phải identifier hợp lệ (có thể là từ khóa)
Lưu ý: IsValidIdentifier trả về false cho cả từ khóa VÀ identifier không hợp lệ (bắt đầu bằng số, chứa ký tự đặc biệt...). Để phân biệt chính xác, cần so sánh với danh sách từ khóa C# đã biết.