在什么情况下,使用VB.NET中的MyBase和MyClass关键字?
当虚拟函数需要调用其父版本时,使用MyBase。例如,考虑:
Class Button Public Overridable Sub Paint() ' Paint button here. ' End Sub End Class Class ButtonWithFancyBanner Inherits Button Public Overrides Sub Paint() ' First,paint the button. ' MyBase.Paint() ' Now,paint the banner. … ' End Sub End Class
(这与C#中的基数相同)
MyClass很少使用。它调用自己的类的方法,即使它通常调用派生类的虚方法。换句话说,它解散虚拟方法调度,而是进行静态调用。
这是一个有创意的例子。现在我很难找到一个现实世界的用法(尽管当然存在):
Class Base Public Overridable Sub PrintName() Console.WriteLine("I’m Base") End Sub Public Sub ReallyPrintMyName() MyClass.PrintName() End Sub End Class Class Derived Inherits Base Public Overrides Sub PrintName() Console.WriteLine("I’m Derived") End Sub End Class ' … Usage: ' Dim b As Base = New Derived() b.PrintName() ' Prints "I’m Derived" ' b.ReallyPrintMyName() ' Prints "I’m Base" '
原文地址:https://www.jb51.cc/vb/255975.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。