【问题标题】:Is there a way to transform a string to a command? [duplicate]有没有办法将字符串转换为命令? [复制]
【发布时间】:2020-12-23 15:35:19
【问题描述】:

我正在做一个计算器。做一个按字符解析字符串的正确字符串分析器会很长而且很难,所以我想,有没有办法把字符串变成这样的命令行:

double num = "12/6+23*4";

【问题讨论】:

  • 您可以动态编译 C# dll,任何人都可以运行恶意代码。除非您知道自己在做什么,否则永远不要评估任何事情。相反,将字符串拆分为“令牌”、单个数字、符号、运算符。使用令牌列表创建操作,然后对其进行排序。
  • 根据您给出的简洁示例,很难判断您的任务的范围和上下文。考虑写更多关于你打算在哪里使用计算器的信息。它是一个类的作业吗,它会解析从 CLI 的参数传递的字符串吗?要获得好的答案,需要更多细节。

标签: c# string command line


【解决方案1】:

有一个小而简单的技巧可以做到这一点。首先,导入命名空间

using System.Data;

然后,

string math = "12.0/6+23*4";
decimal value = (decimal)new DataTable().Compute(math, null);
//value = 94.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多