|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。为了婚配Java及撑持J#,.NET数组老是一个协变变量。不幸的是,如许做是一种不平安的体例,在数组中存储值的时分都必要举行运转时反省。关于.NET2和泛型,协变和逆变变异都不克不及撑持了。
.NET4将在接口和托付上撑持平安的协变和逆变。为了完成这类功效,在接口上的范例应当被标志为“in”或“out”润色符。假如标志为out,那末接口就撑持协变,而且给定的范例只能体现为一个前往范例或只读属性。假如标志为in,那末范例只能体现为一个参数或只写属性。
这个功效只对援用范例无效,在布局上不同意变异。经由过程援用传送的参数一样也不同意。可被标志为撑持变异的次要接口和托付有,IEnumerable、IQueryable、Func和Action等。
更多关于这个功效的信息能够扫瞄我们的文章《在.NET泛型中协变和逆变》和EricLippert的Co-andcontra-variance:howdoIconvertaList(OfApple)intoaList(OfFruit)。
检察英文原文:C#FeatureFocus:Co-andContra-variance
本文来自:http://www.infoq.com/cn/news/2008/11/CSharp-Variance
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。 |
|