12
2018
03

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

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

C#

Public interface IAnimalAction<inT>where T:Animal{

Void Action(T animal);

}

 

Public partial classMainForm:Form,IAnimalAction<Animal>{

Public MainForm(){

InitializeComponent();

Do AnotherAnimalAction(this);

}

Private voidDoAnotherAnimalAction(IAnimalAction<Tortoise>action){

Action.Action(new Tortoise());

}

 

VoidInAnimalAction<Animal>.Action(Animal animal){

MessageBox.Show(“This could be anyanimal….”+animal.GetType().Name);

}

VB

Public Interface IAnimalAction(Of In AsAnimal)

Sub Action(ByVal animal As T)

End Interface

 

Public Class MainForm

Implements IAnimalCreator(OfLion),IAnimalAction(Of Animal)

 

Public Sub New()

InitializeComponent()

DoAnotherAnimalAction(Me)

End Sub

 

« 上一篇

相关文章:

评论列表: