18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 营销百科 > .net默认参数

.net默认参数

时间:2023-03-28 18:46:02 | 来源:营销百科

时间:2023-03-28 18:46:02 来源:营销百科

.net默认参数:C#是静态强类型语言。而在很多情况下,提供'动态'行为,是常常发生的事情,例如通过反射在运行时访问.NET类型、调用动态语言对象、访问COM对象等,都无法以静态类型来获取。因此, C# 4.0引入的又一个全新的关键字dynamic,也同时引入了改善静态类型与动态对象的交互能力,这就是动态查找(Dynamic Lookup)例如:

public static void Main() {

dynamic d = GetDynamicObject();

d.MyMethod(22); // 方法调用

d.A = d.B; // 属性赋值

d['one'] = d['two']; //索引器赋值

int i = d 100; // 运算符调用

string s = d(1,2); // 委托调用

}

就像一个object可以代表任何类型,dynamic使得类型决断在运行时进行,方法调用、属性访问、委托调用都可动态分派。同时,动态特性还体现在构建一个动态对象,在C# 4.0实现IDynamicObject接口的类型,可以完全定义动态操作的意义,通过将C#编译器作为运行时组件来完成由静态编译器延迟的操作,例如:

dynamic d = new Foo();

string s;

d.MyMethod(s,3,null);

在具体执行过程中,C#的运行时绑定器基于运行时信息,通过反射获取d的实际类型Foo,然后在Foo类型上就MyMethod方法进行方法查找和重载解析,并执行调用,这正是动态调用的背后秘密:DLR。在.NET 4.0中将引入重要的底层组件DLR(Dynamic Language Runtime,动态语言运行时),除了实现动态查找的基础支持,DLR也同时作为基础设施为类似于IronRuby、IronPython这样的动态语言提供统一的互操作机制。总而言之,动态编程将为C#在以下领域产生巨大的变革:

· Office编程与其他COM交互。

·动态语言支持,在C#中消费IronRuby动态语言类型将并非难事,体验动态语言特性指日可待。

· 增强反射支持。

以调用IronRython为例,我们只需引入IronPython.dll,IronPython.Modules.dll,and Microsoft.Scripting.dll,即可通过创建ScriptRuntime在C#中HostingIronPython环境,进而来操作动态语言的类型信息。

ScriptRuntime py = Python.CreateRuntime();

dynamic mypy = py.UseFile('myfile .py');

Console.WriteLine(mypy.MyMethod('Hello'));

虽然从微软当前提供的技术资料和CTP演示中,动态查找还存在或多或少的问题,但是在'动态'大行其道的今天,我们无法回避也必须拥抱这个未来的主角,因为我坚信明天会更好。

关键词:参数,默认

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭