如何得到字符串"1=1 and 2=3"的值?即true还是false

int64 2005-09-19 03:43:44
如题
...全文
345 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hedonister 2005-09-19
  • 打赏
  • 举报
回复
以上代码已做测试,希望能满足楼主的需要!
hedonister 2005-09-19
  • 打赏
  • 举报
回复
特意为你改造了下http://blog.joycode.com/ninputer/archive/2005/04/05/47003.aspx的类

封装类:
using System;
using System.Text;
using System.CodeDom.Compiler;
using System.Reflection;
using Microsoft.CSharp;

namespace Ninputer.Utilities
{
public sealed class Evaluator
{
private static CSharpCodeProvider comp = new CSharpCodeProvider();

private static CompilerParameters cp = new CompilerParameters();

private static MethodInfo mi;

public static object Eval(string expression)
{
StringBuilder codeBuilder = new StringBuilder();

codeBuilder.Append("using System; ");
codeBuilder.Append("namespace AjaxDemo{ ");
codeBuilder.Append("public sealed class Test{ ");
codeBuilder.Append("public static object Exe(){");
codeBuilder.Append("return "+expression+";");
codeBuilder.Append("}}}");

cp.ReferencedAssemblies.Add("System.dll");
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;

string code = codeBuilder.ToString();
CompilerResults cr = comp.CreateCompiler().CompileAssemblyFromSource(cp,code);

if (cr.Errors.HasErrors)
{
throw new ArgumentOutOfRangeException("expression","所给定的表达式["+expression+"]无法通过编译,请检查并修改后重试!");
}
else
{
Assembly a = cr.CompiledAssembly;
Type t = a.GetType("AjaxDemo.Test",true,true);
mi = t.GetMethod("Exe", BindingFlags.Static | BindingFlags.Public);
return mi.Invoke(null, new object[0]);
}
}
}
}

调用代码如下:
object oo = Evaluator.Eval("1==1 && 2==3");

bool bResult = Convert.ToBoolean(oo);
sukaru 2005-09-19
  • 打赏
  • 举报
回复
不明白什么意思.
lyb_abiandbel 2005-09-19
  • 打赏
  • 举报
回复
以上不对,误解楼主的意思了,对不起.
lyb_abiandbel 2005-09-19
  • 打赏
  • 举报
回复
不对,应该是:
1==1&&1==2?true:false
lyb_abiandbel 2005-09-19
  • 打赏
  • 举报
回复
1==1||2==3?true:false
liuqinglq 2005-09-19
  • 打赏
  • 举报
回复
呵呵……
楼上没理解题意
楼主参考下这个吧

动态计算字串表达式值的类
http://blog.joycode.com/ninputer/archive/2005/04/05/47003.aspx

---------------------------------------------------
楼主的问题真如你说的吗?

可楼主的字符串里压根没加减乘除的
hedonister 2005-09-19
  • 打赏
  • 举报
回复
呵呵……
楼上没理解题意
楼主参考下这个吧

动态计算字串表达式值的类
http://blog.joycode.com/ninputer/archive/2005/04/05/47003.aspx
GDNPC 2005-09-19
  • 打赏
  • 举报
回复
楼主究竟想这个“1==1 && 2==3”是true还是false?打算就这样给机器判断吗?那肯定是false了
1==1是true,2==3是false,true&&false=false
吐司vivi 2005-09-19
  • 打赏
  • 举报
回复
if(1==1 && 2==3)
xiaowangtian1117 2005-09-19
  • 打赏
  • 举报
回复
是不是这个意思?
if(1==1 && 2==3)
{}
liuqinglq 2005-09-19
  • 打赏
  • 举报
回复
楼主问的莫名其妙的

字符串的值就是字符串了

怎么会是布尔值的true false?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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