惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Engineering at Meta
Engineering at Meta
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
Last Week in AI
Last Week in AI
博客园_首页
I
InfoQ
T
Tailwind CSS Blog
爱范儿
爱范儿
雷峰网
雷峰网
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
B
Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
V
Visual Studio Blog
有赞技术团队
有赞技术团队
P
Proofpoint News Feed

博客园 - chingho

OpenClaw 不会安装的,一键安装包来了,代码开源! Windows下安装 Ollama + OpenClaw + 飞书,实现真正本地部署! 微软新利器!winapp CLI:一键打包、调试、集成 Windows 原生能力 告别代码!我用Trae氛围编程的方式,开发了一款公众号文章同步插件! C#实现Stdio通信方式的MCP Server C#实现SSE通信方式的MCP Server C#实现MCP Client 与 LLM 连接,抓取网页内容功能! VS Code + Cline + 魔搭MCP Server 实现抓取网页内容。 C#实现自己的MCP Client 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略来了! Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能 Phi小模型开发教程:用C#开发本地部署AI聊天工具,只需CPU,不需要GPU,3G内存就可以运行,不输GPT-3.5 OxyPlot:一个功能强大、漂亮.Net跨平台开源绘图库 websocket-sharp:.NET平台上的WebSocket客户端与服务器开源库 BotSharp:又一个.Net重磅AI开源项目,.Net在AI领域开始崛起! DateTimeExtensions:一个轻量C#的开源DateTime扩展方法库 Bogus:.NET的假数据生成利器 Coravel:一个可轻松实现任务调度、队列、邮件发送的开源项目 .Net程序员机会来了,微软官方新推出一个面向Windows开发者本地运行AI模型的开源工具
Eval-Expression.NET:动态执行C#脚本,类似Javascript的Eval...
chingho · 2025-01-10 · via 博客园 - chingho

我们都知道在JavaScript中,我们可以通过Eval来执行JavaScript字符串代码。

下面推荐一个.Net版本的Eval的开源项目。

01 项目简介

Eval-Expression.NET是一个非常强大工具,使得开发人员可以动态编译和执行C#代码和表达式。通过C#反射,还能轻松访问公共和私有方法、字段、属性值,并创建对象实例。

02 使用示例

1、依赖库安装

Install-Package Z.Expression.NET

2、简单公式

using Z.Expressions;

int result = Eval.Execute<int>("X + Y", new { X = 1, Y = 2 });
//输出 3
Console.WriteLine(result);

3、复杂代码

using Z.Expressions;

int result = Eval.Execute<int>(@"
  var list = new List<int>() { 1, 2, 3, 4, 5 };
  var filter = list.Where(x => x < 4);
  return filter.Sum(x => x);");
//输出 6
Console.WriteLine(result);

4、参数占位符

int result = Eval.Execute<int>("{0} + {1}", 1, 2);

5、动态类的属性

dynamic expandoObject = new ExpandoObject();
expandoObject.X = 1;
expandoObject.Y = 2;
int result = Eval.Execute<int>("X + Y", expandoObject);

6、字符串扩展方法

string s = "X + Y";
int result = s.Execute<int>(new { X = 1, Y = 2 });

7、委托

//委托
var compiled = Eval.Compile<Func<int, int, int>>("X + Y", "X", "Y");

int result = compiled(3, 4);
//输出 7
Console.WriteLine(result);

8、扩展方法委托

using Z.Expressions;

//扩展方法委托
string s = "X + Y";
var compiled = s.Compile<Func<int, int, int>>("X", "Y");

//输出 7
int result = compiled(3, 4);
Console.WriteLine(result);

03 项目地址

https://github.com/zzzprojects/Eval-Expression.NET

更多开源项目: https://github.com/bianchenglequ/NetCodeTop

- End -

推荐阅读

Garnet:微软官方基于.Net 8开源缓存系统,可无需任何改动直接替代Redis,而且还更高性能!

ExcelDataReader:一个.Net高性能Excel开源读取器

一个C#开源工具库,集成了超过1000个扩展方法

13个热门.Net开源项目

盘点6个.Net热门AI项目