And*_*ker 2 .net code-generation
在.net中,有没有办法检测某个单词是否是给定.net语言中的关键字?
我正在为这个项目使用一个相当简单的代码生成器,我想开始自动化它.现在我手工完成每一个,所以解决出现的任何问题都很容易.但是,一旦这种情况自动开始,我将需要一种方法来检测我需要用作标识符的单词是否是关键字.我仍然可以使用它,我只需要正确引用它.
我知道我可以简单地引用我生成的所有内容,但我想保持生成的代码很漂亮:)
我需要引用的一类例子:
vb: Public [Class] As String = "CLASS"
c#: public String @class = "CLASS";
Run Code Online (Sandbox Code Playgroud)
也许你正在寻找 IsValidIdentifier
[
IsValidIdentifier] return [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)
Run Code Online (Sandbox Code Playgroud)
似乎扩展/使用此设施以满足您的需求并不会太难.