我知道标题可能是真的很难理解,这是很难想象一个适当的标题,但这里的是我想做的本质。我可以获取作为布尔函数传递给函数的条件的字符串表示形式吗?
基本上我想有这样的方法:
void Validate(bool validation)
{
if (!validation)
{
throw new Exception();
}
}
然后,我想这样称呼它:
try
{
Validate(1 > 2);
}
catch (Exception e)
{
// This is where I would output the error to the user
}
我想要得到的1 > 2
部分作为一个字符串没有定义它作为其他地方,或评估字符串到bool
,或使用谓词或使用外部方法。理想情况下,这将通过反思完成。我还会采取更好的方式来做我想做的事。假设bool
可以是任何东西:1 > 2
,"cheese" != "ham"
, objectA == objectB
等。
你能给更多的环境?这在哪里使用,以及如何?验证非常普遍,您似乎应该能够利用现有的解决方案。 – 2011-04-29 21:57:16
我期待为我正在进行的项目做一个预处理器。我基本上将构建一个功能完整的C#类,它将通过CS-Script项目(http://www.csscript.net/)进行编译,我这样做是因为我想稍微贬低C#非程序员开发。其中一个预定义的方法是一个Validate()方法,它允许脚本执行比较,如果失败(甚至成功),我希望它在脚本执行期间显示屏幕上失败/成功的内容。 – MGSoto 2011-04-29 22:04:29
另外作为一个方面说明,因为我知道我可以只读“脚本”并手动拉出比较,我想避免这种情况并执行后编译操作。 – MGSoto 2011-04-29 22:05:34