• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#实现Eval函数功能

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

众所周知javascript有一个eval函数,可以动态执行代码。但在C#中却没有!

以下代码是在我项目中提取出的核心代码,其实很简单就是 编译-->生成程序集-->反射调用。

高手指点,新手学习!

//如果执行成功返回NULL,否则返回错误文本
string strErr;

//代码执行结果是以字符串形式返回的,因为我的项目中只须要字符串结果,大家可跟据须要自己修改。www.elivn.com

string strResult = CommandDebugger.Evaluator.Eval(“Your Codes”, out strErr);


代码下载:下载地址

------------------------------------------------------------------

呵呵,谢谢大家的意见,本人新手还请大家见谅,其实这个功能是跟据我的程序“量身定做”的。

ironpython也听说过,不过一直没用过也不太了解。

在我的项目中有这样一种功能,可以动态执行一段代码并返回值。

比如,查看当前上下文中一静态变量的值,可以这么写:

string strErr;

string strResult = CommandDebugger.Evaluator.Eval("StaticClass.Value",out strErr);

还可以用include c:/windows/system.dll等语句导入程序集
using System.xml;  等语句引用命名空间
print:输出语句结果等。。

如果是单纯是实现一个Eval函数我想我这个方法肯定不是很好,但是跟据我的程序的须求,呵呵,应该还算过得去吧。。。还请大家指点!!

其中主要用到以下类实现。

CSharpCodeProvider
CompilerParameters
CompilerResults

众所周知javascript有一个eval函数,可以动态执行代码。但在C#中却没有!

以下代码是在我项目中提取出的核心代码,其实很简单就是 编译-->生成程序集-->反射调用。

高手指点,新手学习!

//如果执行成功返回NULL,否则返回错误文本
string strErr;

//代码执行结果是以字符串形式返回的,因为我的项目中只须要字符串结果,大家可跟据须要自己修改。www.elivn.com

string strResult = CommandDebugger.Evaluator.Eval(“Your Codes”, out strErr);


代码下载:下载地址

------------------------------------------------------------------

呵呵,谢谢大家的意见,本人新手还请大家见谅,其实这个功能是跟据我的程序“量身定做”的。

ironpython也听说过,不过一直没用过也不太了解。

在我的项目中有这样一种功能,可以动态执行一段代码并返回值。

比如,查看当前上下文中一静态变量的值,可以这么写:

string strErr;

string strResult = CommandDebugger.Evaluator.Eval("StaticClass.Value",out strErr);

还可以用include c:/windows/system.dll等语句导入程序集
using System.xml;  等语句引用命名空间
print:输出语句结果等。。

如果是单纯是实现一个Eval函数我想我这个方法肯定不是很好,但是跟据我的程序的须求,呵呵,应该还算过得去吧。。。还请大家指点!!

其中主要用到以下类实现。

CSharpCodeProvider
CompilerParameters
CompilerResults

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
什么是C/S架构B/S架构发布时间:2022-07-13
下一篇:
[I2C].I2C总线详解发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap