社区
C#
帖子详情
如果将字符串的内容作为代码执行
qiang119
2008-04-01 09:01:14
例如:b="string a;";
如何 通过执行变量b 从而达到程序自动定义变量a ???
...全文
87
1
打赏
收藏
如果将字符串的内容作为代码执行
例如:b="string a;"; 如何 通过执行变量b 从而达到程序自动定义变量a ???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sx_lxh
2008-04-01
打赏
举报
回复
动态编译。
例:获取字符串所表示的逻辑意义
/*****************************************************************
** 文件名: Eval.cs
** Copyright (c) 1999 -2003
** 创建人: Phoenix
** 创建日期:
** 修改人:
** 修改日期:
** 描 述: 获取字符串所表示的逻辑意义
** 版 本:1.0
******************************************************************/
public class Eval
{
public static object GetValue(string value)
{
string codeSnippet = "using System; " + "\r\n" +
"namespace CzG {" + "\r\n" +
" public class Eval" + "\r\n" +
" {" + "\r\n" +
" public Eval(){} " + "\r\n" +
" public object GetValue()" + "\r\n" +
" {" + "\r\n" +
" return " + value + ";" + "\r\n" +
" }" + "\r\n" +
" } }";
CodeSnippetCompileUnit unit = new CodeSnippetCompileUnit(codeSnippet);
CodeDomProvider compiler=new CSharpCodeProvider() ;
//ICodeCompiler compiler = new CSharpCodeProvider().CreateCompiler();
string[] referenceAssemblies={"System.dll"};
CompilerParameters para = new CompilerParameters(referenceAssemblies ,"Eval.dll",false );
//para.ReferencedAssemblies.Add("System.dll");
para.GenerateInMemory = true;
para.GenerateExecutable = false;
//para.OutputAssembly = "Eval.dll";
Assembly asm = compiler.CompileAssemblyFromDom(para, unit).CompiledAssembly;
Type type = asm.GetType("CzG.Eval");
MethodInfo mi = type.GetMethod("GetValue", BindingFlags.Public | BindingFlags.Instance);
object obj = asm.CreateInstance("CzG.Eval");
object ret = mi.Invoke(obj, null);
return ret;
}
}
Python 将
字符串
作为
代码
运行
我冷静了一辈子,我必须要做出点改变才行。 今天又是拖到十一点半之后才写日更的一天。Anyway,开始今天的
内容
。 今天搞测试用例的时候不同的用例之间只有5%的
代码
是不同的,因此希望能够用处理
字符串
的方式来复用其余的95%
代码
,测试脚本是用Python写的。所以今天会罕见地出现Python的
内容
。 Python运行
字符串
的接口:exec() 与 eval() ####1. exec() 【以下
内容
摘自菜鸟教程】:Python 将
字符串
作为
代码
执行
def exec_code(): LOC = ".
matlab的
执行
字符串
命令,Matlab - 将
字符串
作为
代码
执行
使用eval()函数将
字符串
作为
代码
执行
;配合num2str()函数和循环结构,可访问按规律排列的文件。>> help evaleval Execute MATLAB expression in text.%eval 将字符作为MATLAB
代码
执行
;eval(EXPRESSION) evaluates the MATLAB code in the character vectorEX...
python-
字符串
作为
代码
执行
(exec、eval、locals、compile)
字符串
作为
代码
执行
的方法: 1、eval() 构造器:eval(source, globals=None, locals=None, /) 说明:输入一个【python表达式或code对象】参与计算。 用于恶意攻击,窥视: 再看下eval的参数globals和locals参数的用法,看栗子: 一幕了然,局部变量空间和全局变量空间的优先级的先后顺序~ 2、e...
js将
字符串
转化为
代码
js将
字符串
转化为
代码
的几种方式: 1、直接将
字符串
转换为
代码
var eacuateStr="alert(12);"; eval(eacuateStr); //
执行
alert(12); 弹出提示框 2、
执行
函数 function test(str){ alert(str); } eval('test("aaaaaaaaaaaaaaaaaaa")'); 3、将
字符串
作为动态参数
执行
function test(data, a) { let result eval(a) return r
执行
字符串
javascript
1.平时底层是给JSON数据,但不排除给
字符串
js数据,这时候
字符串
代码
就必须解析
执行
了,常用有俩种方法分别是eval()和new Function() 2.new Function()和eval()的区别是,前者把传入的
字符串
封装为一个function对象的语句返回,直到调用这个返回的函数时,才会
执行
字符串
所要
执行
的操作;后者则是直接把
字符串
当做js
代码
执行
例: 底层如果只给js的一些变量数据,使用new Function 函数好一点,可以返回需要的数据 模仿底层数据 var a = new Fun
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章