C# 中的用户定义公式

2024-01-18

我有一个应用程序,用户可以为每个对象指定他自己的测量点。然后,这些测量值将用于将对象分类为 A - 需要服务,B - 服务应在 X 天内安排,C - 不需要 ATM 服务

然而,这些对象几乎可以是任何东西,我们无法硬编码如何将测量值聚合到分类,我们需要将其留给用户。

您对我们如何为用户提供输入自己的公式的方式有什么建议吗?它不一定是防白痴的,我们没有那么多客户,所以只要他们能向我们解释,我们就可以帮助他们。


我写了一个开源项目,动态浓缩咖啡 https://github.com/davideicardi/DynamicExpresso/,它可以将使用 C# 语法编写的文本表达式转换为委托(或表达式树)。表达式被解析并转换为表达式树 http://msdn.microsoft.com/en-us/library/bb397951.aspx不使用编译或反射。

你可以这样写:

var interpreter = new Interpreter();
var result = interpreter.Eval("8 / 2 + 2");

or

var interpreter = new Interpreter()
                .SetVariable("service", new ServiceExample());

string expression = "x > 4 ? service.SomeMethod() : service.AnotherMethod()";

Lambda parsedExpression = interpreter.Parse(expression, 
                        new Parameter("x", typeof(int)));

parsedExpression.Invoke(5);

我的作品基于 Scott Gu 的文章http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的用户定义公式 的相关文章

随机推荐

  • 如何为 jenkins git 插件指定 ssh 密钥

    我正在使用git插件 https wiki jenkins ci org display JENKINS Git Plugin 据称它与 Jenkins 凭证管理功能 集成 凭证 使用 Jenkins 凭证管理功能连接到存储库的凭证 除非允
  • Heroku + Rails + PG:ActiveRecord::StatementInvalid (PG::ConnectionBad: PQconsumeInput() SSL 连接已意外关闭

    我的日志中经常随机收到以下错误 Nov 06 05 31 21 lmrapp app web 2 wbinternacional 0f0965e3 e537 4aed 8f3e 311a222e8fa1 PG ConnectionBad P
  • ngAnimate 1.4.7单元测试不调用动画函数

    我一直在工作本教程 http www sitepoint com angularjs testing tips bootstrap blocks routes events animations 并在谷歌上进行了令人作呕的搜索 但我似乎无法
  • 如何搜索多个pdf文件的内容?

    如何在目录 子目录中搜索 PDF 文件的内容 我正在寻找一些命令行工具 看起来grep无法搜索 PDF 文件 有pdfgrep http pdfgrep org 正如它的名字所暗示的那样 pdfgrep R a pattern to sea
  • Python 截图 2+ 显示器(windows)

    如果连接到多个显示器 如何使用 python 进行屏幕截图 I tried import sys from PyQt4 QtGui import QPixmap QApplication app QApplication sys argv
  • 调整 NSWindow 大小以适合子 NSView

    我有一个空的主 NSWindow 和 5 个 NSView NSView 有不同的按钮和标签等 并且窗口是空的 显示的第一个视图是一个菜单 链接到其他视图并返回 这工作正常并且视图切换得很好 但是 如果 NSWindow 具有一定大小 并且
  • 从 HTML 输入返回应用程序脚本中的数据

    我正在尝试使用 HTMLService 从 google 电子表格启动 html 表单 并将数据从选择输入返回到脚本 我正在用这一行收集数据 但我不确定如何将其返回到脚本文件 我尝试了以下各种迭代 城市 form Projects list
  • 模拟抛硬币一周?

    这不是家庭作业 我有兴趣在 R 中设置抛硬币的模拟 我想运行该模拟一周 R 中是否有一个函数可以让我在一段时间内 例如一周 启动和停止模拟 如果一切顺利的话 我可能想增加模拟周期的长度 例如 x lt rbinom 10 1 1 2 所以要
  • 一个简单的闰年逻辑问题

    public class LeapYear public static void main String args int year Integer parseInt args 0 boolean isLeapYear divisible
  • Android FirebaseRecyclerAdapter populateViewHolder() 永远不会被调用

    我有一个如下所示的 firebase 数据结构 我正在尝试使用 FirebaseRecyclerAdapter 加载此数据 问题是 populateViewHolder 没有被调用 对数据库结构的引用有效 我可以使用 FriendsRef
  • 无法在未调用 Looper.prepare() 的线程内创建处理程序 [xamarin]

    所以我实际上没有问题 因为我已经解决了它 但如果其他人遇到这个问题 有一个简洁的解决方案总是好的 虽然有很多 Can t create handler inside thread which has not called Looper pr
  • Android 兼容包和 getLoaderManager()

    安卓兼容包 http android developers blogspot com 2011 03 fragments for all html据说支持LoaderManager 如何获取 LoaderManager 的实例 Fragme
  • 如果Python中的单元格包含特定字符,如何为其着色?

    我正在处理一个数据框 来自 Excel 文件 我想格式化单元格 DF具有以下内容 作为示例 a b c 234 gt 500 200 gt 500 0 234 gt 500 400 6 66 34 1 我想将包含 gt 的单元格着色为红色
  • Python 3 - pickle 可以处理大于 4GB 的字节对象吗?

    基于此comment https stackoverflow com a 29704623 1202808以及参考文档 来自 Python 3 4 的 Pickle 4 0 应该能够 pickle 大于 4 GB 的字节对象 但是 在 Ma
  • 如何在 Django REST 框架 ViewSet 子类中使用分页?

    我有一个简单的子类viewsets ViewSet看起来像 from rest framework import viewsets from rest framework response import Response from mode
  • Angular2目标特定路由器出口

    我有一个应用程序 它有一个基本路由器插座 用作整个应用程序的基础 然后是一个子路由器出口 用户登录后使用该子路由器出口来显示由于单击基于基本路由器出口的导航链接而加载的任何组件 我希望在基本模板中单击导航链接时能够定位子路由器出口 当我单击
  • 如何在核心数据中存储 swift 枚举?

    Swift 允许您定义枚举 但核心数据不支持 开箱即用 如何保存它们 我在互联网上看到的推荐解决方案 迄今为止使用过 是使用私有变量 class ManagedObjectSubClass NSManagedObject enum Card
  • 查询数据库中的元组列表

    由于我是Python编程新手 所以我不太了解如何从数据库查询数据 首先 我在 SQL Server 中创建了数据库 其中包含 2 列 String列和Numeric column String Numeric One 1 Five 5 Th
  • 如何创建持久性 cookie 和非持久性 cookie?

    我似乎不知道如何创建持久性 cookie 和非持久性 cookie 例如 它们在发送回的 HTTP 标头方面有何不同 Cookie 有一个隐式或显式设置的到期日期 该日期控制它们的持续时间 取决于用户代理实际执行的情况 cookie 可能仅
  • C# 中的用户定义公式

    我有一个应用程序 用户可以为每个对象指定他自己的测量点 然后 这些测量值将用于将对象分类为 A 需要服务 B 服务应在 X 天内安排 C 不需要 ATM 服务 然而 这些对象几乎可以是任何东西 我们无法硬编码如何将测量值聚合到分类 我们需要