如何利用IronPython实现.NET接口?
在IronPython2.6中新增加了clrtype功能,这样我们就可以在IronPython中实现接口以及特性类的功能。
要想使用clrtype,需要先引入clrtype.py这个文件,在安装完IronPython之后,我并没有在安装目录下发现这个文件,但是在IronPython2.6的Samples里找到了这个文件,Copy过来就OK了。
先定义一个C#的接口,然后将其改写为Python的,代码如下:
using System;
public interface IMyInterface
{
string SayAge(int age);
}
public class MyClass:IMyInterface
{
public string SayAge(int age)
{
return "hello " + age.ToString();
}
}
对就的Python程序如下所示:
# coding=gb2312
import clr
import clrtype
from System import *
class IMyInterface(object):
__metaclass__ = clrtype.ClrInterface#声明该类为接口类型
_clrnamespace = "TestPython" #添加命名空间
@clrtype.accepts(int)
@clrtype.returns(str)
def SayAge(self, age):
raise RuntimeError("this should not get called")
class MyClass(IMyInterface):
__metaclass__ = clrtype.ClrClass#声明该类为类
_clrnamespace = "TestPython"#添加命名空间
def SayAge(self, age):
return "hello " + str(age)
mc = MyClass()
Console.Write(mc.SayAge(10))
相关视频
相关阅读 黑鲨2pro手机发布会直播地址 黑鲨2pro发布会直播网址iPhone数据迁移怎么用 iOS 12.4数据迁移功能使用教程禁用“Chrome请停用以开发者模式运行的扩展程序”教程LOL云顶之弈各英雄如何搭配装备 云顶之弈全英雄装备搭配推荐Chrome浏览器新老版本插件安装教程 谷歌浏览器新老版本插件安装方红米k20发布会直播地址 红米k20pro手机发布直播网址瘟疫传说无罪配置要求如何 瘟疫传说无罪配置要求推荐进击的巨人2最终之战配置要求如何 进击的巨人2最终之战配置推荐
热门文章 没有查询到任何记录。
最新文章
什么是.NET中的TDD?ASP.NET AJAX入门简介
WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用
人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题
查看所有0条评论>>