深入理解 c# 第十四章 调用声明在ScriptScope中的方法 用ScriptScope存储和获取信息

    class ScriptScopeDelegate
    {
        static void Main()//调用声明在ScriptScope中的方法 用ScriptScope存储和获取信息
        {
            string python = @"
def sayHello(user):
    print 'Hello %(name)s' % {'name' : user}
";
//python "\r\ndef sayHello(user):\r\n    print 'Hello %(name)s' % {'name' : user}\r\n"
            ScriptEngine engine = Python.CreateEngine();
//engine "IronPython 2.7.3"			
            ScriptScope scope = engine.CreateScope();
//scope {Microsoft.Scripting.Hosting.ScriptScope}			
            engine.Execute(python, scope);
            dynamic function = scope.GetVariable("sayHello");
//{IronPython.Runtime.PythonFunction}			
            function("Jon");
        }
    }	


  作用域中也可以包含函数,我们可以动态地获取然后调用这些函数,传递参数并从中返回值。
要做到这些,最简单的方式就是使用dynamic类型
  很多情况下,能够在执行时运行用户输入代码的表达式求值程序是十分有用的,如计算折扣、
运费的业务规则等。并且在以文本形式修改这些规则,而不用重新编译或重新部署二进制文件
方面非常有用。


 输出
 Hello Jon

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值