一,Overridable和Overrides
能重写和重写。是用在父类和子类中的。
如:父类:baseForm
Public Overridable Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
Debug.WriteLine("common: Button1_Click")
If MsgBox("確認",MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
Button1_Do()
End If
End Sub
Public Overridable Function Button1_Do()
MsgBox("base=>Button1_Do")
Return ""
End Function
其中有事件和方法都是Overridable :可以重写的。
所以在子类中就可以这样:
函数Button1_Do加上Overloads 就被重写了。父类的Button1_Do内容就无效了。
同样:事件Button1_Click加上Overrides也被复写了。父类的Button1_Click内容就无效了。
需要注意的是:Handles Button1.Click不删除的话,会调用两次。
一次是父类重写,一次是自身激活。
Public Overloads Function Button1_Do()
MsgBox("subForm=>Button1_Do")
Me.Close()
Return "sub"
End Function
Public Overrides Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
Debug.WriteLine("sub: Button1_Click")
If MsgBox("確認",MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
Button1_Do()
End If
End Sub
二,Overloads重载
在一个类中,同名的函数可以定义多次。只不过参数个数,类型,返回值不一致