我正在寻找一个函数(可能在.Net框架中有这样一个函数),可以用它来验证C#语法。它也可以是一个带有内置验证的C#解析器。
背景:我正在构建一个小型代码生成器,用户可以输入一些定义,并获得完全实现的属性等,但我想检查用户是否输入了正确的C#代码,并且结果也是正确的。
编辑:
我不想编译代码,而且它可能是不完整的代码。例如,用户可以输入一个带有他的代码中的类的代码片段,我不知道,而且我只想验证语法,而不是“内容”。
示例
输入:
Car car = new Car();
car.drive("50");
输出:
Same as input, because it's valid and nothing to do.
输入:
Car car = new Car()
car.drive("50");
输出:
Message that it is not valid, beause of missing ';'
等等,我不认识 Car
这个类,所以无法编译它,我只是想检查语法。
Car
是类型、命名空间、变量标识符、类型参数等,就无法完全验证语法。片段可能是有效的或无效的(从语法上讲)。那么你所说的“验证”是什么意思呢? - Kieren Johnstoneint myTest = hello;
可能是有效的也可能是无效的。hello
可以是一个方法(所以你错过了(
和)
),或者它可以是一个变量(在这种情况下,没有错误)。因此,如果不知道具体情况,就不能验证语法的正确性。 - Kieren Johnstone