c# 如何调用参数中的c#表达式

levitate 2010-04-24 10:01:43
比如说:

string if_string = "true==true";

怎么在 C# 中 获得 if_string 中 true==true 的bool运行值呢?
...全文
144 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
levitate 2010-04-25
  • 打赏
  • 举报
回复
还好在网上找到 eval 的 源程序,如果大家对这个应用敢兴趣 不妨可以去下载看看,感谢大家的帮助!
下载连接: http://download.csdn.net/source/2282795
levitate 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 snowdust 的回复:]

1.添加对Microsoft.JScript和Microsoft.Vsa的引用。
2.方法:
C# code
public static object Eval(string expression)
{
Microsoft.JScript.Vsa.VsaEngine myEngine = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();……
[/Quote]

错误 1 命名空间“Microsoft”中不存在类型或命名空间名称“JScript”(是缺少程序集引用吗?)
levitate 2010-04-24
  • 打赏
  • 举报
回复
有没有直接调用c# 的? 而不是 JScript
wuyq11 2010-04-24
  • 打赏
  • 举报
回复
表达式值可使用DataTable.Compute
MSScriptControl.ScriptControlClass jscript = new MSScriptControl.ScriptControlClass();
jscript.Language = "JScript";
string strResult = jscript.Eval("").ToString();
levitate 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 computerfox 的回复:]

漏了一行代码:
C# code

string[] equals={"=","="};
string[] para = if_string.Split(equals ,StringSplitOptions.RemoveEmptyEntries );
if (para[0] == para[1])
return true;
else
return false;
[/Quote]

如果仅仅这样用正则更方便
levitate 2010-04-24
  • 打赏
  • 举报
回复
我说的不是这个意思,而是说如何调取变量中间的内容,用于参与c#程序运算,这个只是举例而已。
捷哥1999 2010-04-24
  • 打赏
  • 举报
回复
漏了一行代码:

string[] equals={"=","="};
string[] para = if_string.Split(equals ,StringSplitOptions.RemoveEmptyEntries );
if (para[0] == para[1])
return true;
else
return false;


Snowdust 2010-04-24
  • 打赏
  • 举报
回复
1.添加对Microsoft.JScript和Microsoft.Vsa的引用。
2.方法:
public static object Eval(string expression)
{
Microsoft.JScript.Vsa.VsaEngine myEngine = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
return Microsoft.JScript.Eval.JScriptEvaluate(exp, myEngine);
}

3.调用:
string if_string = "true==true";
object obj = Eval(if_string);
捷哥1999 2010-04-24
  • 打赏
  • 举报
回复
这样:

string if_string = "true==true";
将if_string传递给一个函数后,在函数中先把==两边的拆成两个字符串后,进行比较:
string[] para = if_string.Split(equals ,StringSplitOptions.RemoveEmptyEntries );

if (para[0] == para[1])
return true;
else
return false;
「已注销」 2010-04-24
  • 打赏
  • 举报
回复
bool b = true==true;

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧