摘要:本文主要向大家介绍了c#编程:使用ScriptScopt存储和获取信息 在宿主和脚本之间传递信息的深入理解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
本文主要向大家介绍了c#编程:使用ScriptScopt存储和获取信息 在宿主和脚本之间传递信息的深入理解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
class SimpleScriptScope
{
static void Main()//使用ScriptScopt存储和获取信息 在宿主和脚本之间传递信息
{
string python = @"
text = 'hello'
output = input + 1
";
//"\r\ntext = 'hello'\r\noutput = input + 1\r\n"
//Python代码作为C#字符串字面量嵌入到C#代码中 而不是放入文件内,可以方便在一个地方查看
//所有代码。 Python对空格敏感
ScriptEngine engine = Python.CreateEngine();
//engine "IronPython 2.7.3"
ScriptScope scope = engine.CreateScope();
//scope {Microsoft.Scripting.Hosting.ScriptScope}
scope.SetVariable("input", 10);
//设置接下来使用的Python代码的变量 SetVariable和GetVariable方法显式地向作用域
//输入和获取值。正如期望的那样,它们声明为object类型,而不是dynamic。但GetVariable
//允许你指定一个类型参数作转换请求
engine.Execute(python, scope);
Console.WriteLine(scope.GetVariable("text"));//从作用域获取变量
Console.WriteLine(scope.GetVariable("input"));
Console.WriteLine(scope.GetVariable("output"));
}
}
以上使用的执行方法都包含一个重载,他们的第二个参数为作用域(scope)。简单来说,可以
看成是名称和值的字典。脚本语言在分配变量时常常不进行显式地声明,如果在程序最上层那么做,
通常会影响到全局作用域。
如果将ScriptScope实例传递给执行方法,那么引擎执行的脚本也将作用于全局作用域。脚本可以
在作用域中获取已经存在的值或创建新值。
输出
hello
10
11
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号