VB.Net中的MyClass

时间:2020-03-06 14:57:25  来源:igfitidea点击:

VB.Net的MyClass关键字有什么实际用途?

我了解MyClass的技术用法;我不了解它在现实世界中的实际用法。

仅当我们有任何虚拟(可重写)成员时,才使用MyClass。但这也意味着我们要忽略子类中的重写实现。这似乎是自相矛盾的。

我可以想到一些人为的示例,但它们只是糟糕的设计,而不是实际的用法。

解决方案

我想我能看到的唯一情况是,我们是否想要基本条件和同时继承的条件? IE。我们想在哪里继承一个成员,但又希望能够访问该成员的值(继承没有更改)的功能?

多态性

抱歉,我在这里没有一个清晰的代码示例,但是我们可以单击下面的链接,我讨厌复制MSDN Library描述,但是它是如此好,以致于很难更清晰地重写它。

" MyClass提供了一种引用当前类实例成员的方法,而无需用任何派生类重写替代它们。MyClass关键字的行为就像一个对象变量,引用了最初实现的类的当前实例。"

还要注意,我们不能在共享方法中使用MyClass。

通过MyClass实现多态的一个很好的例子是在http://www.devarticles.com/c/a/VB.Net/Implementing-Polymorphism-in-VB.Net/

如果要调用链式构造函数,则需要它。

Public Sub New(ByVal accountKey As Integer)
    MyClass.New(accountKey, Nothing)
End Sub

Public Sub New(ByVal accountKey As Integer, ByVal accountName As String)
    MyClass.New(accountKey, accountName, Nothing)
End Sub

Public Sub New(ByVal accountKey As Integer, ByVal accountName As String, ByVal accountNumber As String)
    m_AccountKey = accountKey
    m_AccountName = accountName
    m_AccountNumber = accountNumber
End Sub