C# CreateValidIdentifier()无法检查名称
我正在使用CreateProvider()检查字符串是否是好的变量名C# CreateValidIdentifier()无法检查名称,c#,codedom,csharpcodeprovider,C#,Codedom,Csharpcodeprovider,我正在使用CreateProvider()检查字符串是否是好的变量名 var codeDomProvider = CodeDomProvider.CreateProvider("C#"); var goodName = codeDomProvider.CreateValidIdentifier("ab.cd"); 令人惊讶的是,它还给了我“ab.cd”。VisualStudio从不允许使用这样的名称。这是怎么发生的?我用“System.Type”再次尝试: var cod
var codeDomProvider = CodeDomProvider.CreateProvider("C#");
var goodName = codeDomProvider.CreateValidIdentifier("ab.cd");
令人惊讶的是,它还给了我“ab.cd”。VisualStudio从不允许使用这样的名称。这是怎么发生的?我用“System.Type”再次尝试:
var codeDomProvider = CodeDomProvider.CreateProvider("C#");
var goodName = codeDomProvider.CreateValidIdentifier("System.Type");
它返回“System.Type”。这很麻烦。说:
CreateValidIdentifier测试标识符是否与保留关键字或语言关键字冲突,如果冲突,则尝试返回不冲突的有效标识符名称
因此,它不是一种通用的标识符验证方法。我相信它主要适用于多语言环境,在这种环境中,标识符可能与一种语言中的关键字冲突,但在其他语言中不会冲突
我想你要找的是:
此方法测试标识符是否有效
对于您的值,它确实返回
false
。这将告诉您标识符无效,但它不会告诉您如何修复它,您必须自己解决这个问题。看一下可能会有所帮助。您咨询过吗?好的,我看了。我错过了什么?谢谢。我创造了自己的方法来处理这种情况。