VB.NET中MyClass如何使用,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新源企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),新源網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
建立一個vbConsoleApplication程序,將本文SourceCP進(jìn)去
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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!