26
2018
03

上网管理软件表达式和匿名方法

Visual Basic(VB)的这个版本包含许多其他功能,使VB与C#更接近功能等价这个目标。它还包含两个语言专用的功能,更便于开发人员初始化集合和数组。

Λ表达式和匿名方法:VB以前版本的一个重要的确定是缺乏对λ表达式和匿名方法的完整支持。匿名方法是定义时没有名称的方法,λ表达式是一种特殊的表达式,该表达式可以用于生成委托(与大多数匿名方法一样)或是表达式树。在VB中,现在可以声明一个或多个匿名方法。

19
2018
03

电脑行为管理软件逆变类型参数

在这个例子中,为什么在Animal的IAnimalAction和Tortoise的IAnimalAction之间转换是安全的?以为编译器会强制,所以逆变类型参数T只能用作输入参数。因为Tortoise总是可以转换为Animal,所以把Tortoise传送给希望输入参数是Animal的方法总是安全的。

Public Sub DoAnotherAnimalAction(ByValaction As IAnimalAction(Of Tortoise))

12
2018
03

上网管理软件逆变接口或委托

可以使用in关键字建立自己的逆变接口或委托。在Animal示例中,可以定义一个DoAnotherAnimalAction方法,它接收Tortoise的IAnimalAction作为参数。但实际上MainForm实现了Animal的IAnimalAction。

C#

05
2018
03

电脑行为管理软件逆变参数

在这段代码中,转换是安全的,因为CreateAnimal方法不接受任何类型化参数(即参数要转换的类型)。相反,类型参数定义了返回(或out)值的类型,在T上进行了接口协变。

逆变:有时还希望加宽类型参数,这称为逆变,由IComparer接口使用。可以想象,Animal的IComparer也是Lion的IComparer,因为如果可以比较任何动物,就可以比较Lion。这个转换是允许的,因为IComparer接口已更新为使用in关键字。

«1»