栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在C#.NET中调用Ruby或Python API

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在C#.NET中调用Ruby或Python API

这是动态语言运行时应该做的两件事之一:每个人都认为DLR仅适用于语言实现者,以使在CLI上更轻松地实现动态语言。但是,也使应用程序编写者更容易在其应用程序中托管动态语言。

在DLR之前,每种语言都有自己的托管API。现在,DLR具有标准化的托管规范,适用于
每种 语言,并且支持C#4和VB.NET 10中的动态类型对象,它比以往任何时候都更加容易:

// MethodMissingDemo.csusing System;using IronRuby;class Program{    static void Main()    {        var rubyEngine = Ruby.CreateEngine();        rubyEngine.ExecuteFile("method_missing_demo.rb");        dynamic globals = rubyEngine.Runtime.Globals;        dynamic methodMissingDemo = globals.MethodMissingDemo.@new();        Console.WriteLine(methodMissingDemo.HelloDynamicWorld());        methodMissingDemo.print_all(args);    }}# method_missing_demo.rbclass MethodMissingDemo  def print_all(args)    args.map {|arg| puts arg}  end  def method_missing(name, *args)    name.to_s.gsub(/([[:lower:]d])([[:upper:]])/,'1 2')  endend

在这里,您会看到东西在各个可能的方向传播。C#代码正在Ruby对象上调用一个 甚至不存在的方法
,并且Ruby代码正在.NET数组上进行迭代并将其内容打印到控制台。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号