溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VB.NET中MyClass如何使用

發(fā)布時間:2021-08-11 15:54:58 來源:億速云 閱讀:157 作者:Leah 欄目:編程語言

VB.NET中MyClass如何使用,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

建立一個vbConsoleApplication程序,將本文SourceCP進去

Module Module1   Class BaseClass   Public Overridable Sub MyMethod()   Console.WriteLine("Father is 50 years old!")   End Sub   Public Sub UseMe()   Me.MyMethod() ' Use calling class's version, even if an override.   End Sub   Public Sub UseMyClass()   MyClass.MyMethod() ' Use this version and not any override.   End Sub   End Class   Class DerivedClass : Inherits BaseClass   Public Overrides Sub MyMethod()   Console.WriteLine("child is just 25 years old!")   End Sub   End Class   Sub Main()   Dim child As New DerivedClass   child.UseMe()   child.UseMyClass()   Console.ReadLine()   End Sub   End Module

但是在Csharp里竟然無法實現(xiàn),C#怎樣也不允許我按非虛函數(shù)的方式調(diào)用一個虛函數(shù)。C++可以用類名::方法名的方式訪問自身版本的函數(shù),但C#的類名只能用來訪問靜態(tài)的成員。這真是C#一個奇怪的限制。也許是我少見多怪吧.在MSDN中是這么描述的:

VB.NET MyClass的行為類似于引用最初實現(xiàn)時類的當(dāng)前實例的對象變量。VB.NET MyClass與 Me 類似,但對它的所有方法的調(diào)用都按該方法為 NotOverridable 來處理。因此,所調(diào)用的方法不受派生類中的重寫影響。盡管 DerivedClass 重寫了 MyMethod,但 UseMyClass 中的 MyClass 關(guān)鍵字使重寫的影響無效,編譯器會將該調(diào)用解析為 MyMethod 的基類版本。

MyClass 不能在 Shared 方法內(nèi)部使用,但您可以在實例方法內(nèi)部使用它來訪問類的共享成員。

但是在Csharp里竟然無法實現(xiàn),C#怎樣也不允許我按非虛函數(shù)的方式調(diào)用一個虛函數(shù)。C++可以用類名::方法名的方式訪問自身版本的函數(shù),但C#的類名只能用來訪問靜態(tài)的成員。這真是C#一個奇怪的限制。也許是我少見多怪吧.在MSDN中是這么描述的:

MyClass 的行為類似于引用最初實現(xiàn)時類的當(dāng)前實例的對象變量。VB.NET MyClass與 Me 類似,但對它的所有方法的調(diào)用都按該方法為 NotOverridable 來處理。因此,所調(diào)用的方法不受派生類中的重寫影響。盡管 DerivedClass 重寫了 MyMethod,但 UseMyClass 中的 MyClass 關(guān)鍵字使重寫的影響無效,編譯器會將該調(diào)用解析為 MyMethod 的基類版本。
VB.NET MyClass不能在 Shared 方法內(nèi)部使用,但您可以在實例方法內(nèi)部使用它來訪問類的共享成員。

這點在商業(yè)應(yīng)用中還是很不錯的,比如父類為一個EmployeeBase,包含一個底薪的數(shù)據(jù),那么在實例化雇員的Employee中,Dim e1 as new Employee(EmployeeID),增加員工的底薪的時候,在O/R映像模型建立好之后只需要調(diào)用e1.AddSalary(Salary)方法即可調(diào)用基類的底薪修改方法.(即統(tǒng)一加底薪)

看完上述內(nèi)容,你們掌握VB.NET中MyClass如何使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI