gpt4 book ai didi

c# - 如何从字符串动态运行比较?

转载 作者:太空狗 更新时间:2023-10-30 01:06:10 24 4
gpt4 key购买 nike

如果我有一个像这样的字符串:

"if (24 == 24) AND ((true == false) OR (true == true)) AND ('HELLO' != 'WORLD')"

我如何使用 C#/.Net 在代码中动态评估它?

我们有一个动态的“规则引擎”,用户可以在其中定义规则。所以一个规则可能是

if (@Number == 24) AND ((@SomeVal1 == false) OR (@SomeVal2 == true)) 
AND ('@CustomerFirstName' != '@CustomerLastName').

我们想对@变量进行简单的搜索/替换,然后计算字符串。

最佳答案

将数据视为代码总是会带来一些重大风险,因此请仔细考虑这会给您的应用程序带来哪些安全隐患。

C# 通常不是这样的动态语言,但您可以破解此功能。 Here是 C# 版本的 eval 的示例。

根据需要,表达式树也可能是一个选项,正如@Femaref 指出的那样。

关于c# - 如何从字符串动态运行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com