Существует ли функция.NET для проверки имени класса?

Некоторые обширные поиски и эксперименты Google привели меня к тому, что я могу ответить на свой вопрос и как раз вовремя!

Если кто-то из вас хотел бы знать, как это можно сделать, этот фрагмент CodePen я написал: http://codepen.io/AmruthPillai/pen/axvqB

22
задан Don Kirkby 30 November 2008 в 05:57
поделиться

4 ответа

Простой способ определить, является ли строка допустимым идентификатором для класса или переменной, состоит в том, чтобы назвать статический метод

System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string value)
26
ответ дан Micah 29 November 2019 в 04:57
поделиться

Используйте CreateValidIdentifier метод на CSharpCodeProvider класс.

CSharpCodeProvider codeProvider = new CSharpCodeProvider(); 
string sFixedName = codeProvider.CreateValidIdentifier("somePossiblyInvalidName"); 
CodeTypeDeclaration codeType = new CodeTypeDeclaration(sFixedName); 

Это возвращает допустимое имя, учитывая некоторый вход. Если Вы просто хотите проверить имя и не зафиксировать его, сравнить ввод и вывод. Это не изменит допустимый вход, таким образом, вывод будет эквивалентен.

8
ответ дан Rüdiger Herrmann 29 November 2019 в 04:57
поделиться
public static bool IsReservedKeyWord(string identifier)
        {
            Microsoft.CSharp.CSharpCodeProvider csharpProvider = new Microsoft.CSharp.CSharpCodeProvider();
            return csharpProvider.IsValidIdentifier(identifier);
        }
1
ответ дан 29 November 2019 в 04:57
поделиться

Я нашел ответ на свой вопрос. Я могу звонить

CodeCompiler.ValidateIdentifiers(class1);

, где class1 является CodeObject для проверки всех идентификаторов во что дерево CodeDom и ниже. Таким образом, я могу назвать это право после того, как я создаю свой CodeTypeDeclaration class1 для проверки просто имени класса, или я могу создать свой CodeDom и затем назвать это в конце для проверки всех идентификаторов в моем дереве.Как раз то, что мне было нужно!

2
ответ дан Zach 29 November 2019 в 04:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: