扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”你可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码。现在我通过一个情景例子来对此进行阐释。
工具/原料
Python tools for Visual Studio
方法/步骤
1
IronPython脚本最优秀的地方就是与C#(或者说.NET框架集)几乎无缝集成,C#实现的类很容易就传入到脚本中去。在.NET中,有很多标准库,在IronPython中,就可以使用import来引入这些标准库来直接使用。我们使用.NET中的String和DateTime
2
代码输出如下,可以看到在IronPython代码中,可以通过String的Format方法进行字符串格式化的输出。
方法/步骤2
1
随着DLR的广泛使用,面临越来越多需要C#代码和脚本语言交互的需求。但是,对于扩展方法来说如果直接使用会有发现DLR无法查找到指定的方法。
2
在我们使用Foo方法扩展时,如果直接使用import方法导入你的DLL和类型定义,DLR引擎是无法识别Foo方法的,会引发AttributeError错误。为了解决这个问题,需要使用 Microsoft.Scripting.Runtime.ExtensionType扩展标识。
上一篇:圆明园遗址公园游览攻略