VB.NET MyClass使用方法細講
VB.NET編程語言,與其他種類的編程語言相比還是有很多不同之處,有很多比較突出的特點,使他一經出現就立即受到了開發人員的關注和使用。今天,大家將會認識到VB.NET MyClass的行館使用方法,方便大家理解這項語言的具體功能及應用技巧。
關于VB.NET MyClass,大家請先建立一個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里竟然無法實現,C#怎樣也不允許我按非虛函數的方式調用一個虛函數。C++可以用類名::方法名的方式訪問自身版本的函數,但C#的類名只能用來訪問靜態的成員。這真是C#一個奇怪的限制。也許是我少見多怪吧.在MSDN中是這么描述的: #t#
VB.NET MyClass的行為類似于引用最初實現時類的當前實例的對象變量。VB.NET MyClass與 Me 類似,但對它的所有方法的調用都按該方法為 NotOverridable 來處理。因此,所調用的方法不受派生類中的重寫影響。盡管 DerivedClass 重寫了 MyMethod,但 UseMyClass 中的 MyClass 關鍵字使重寫的影響無效,編譯器會將該調用解析為 MyMethod 的基類版本。
MyClass 不能在 Shared 方法內部使用,但您可以在實例方法內部使用它來訪問類的共享成員。
但是在Csharp里竟然無法實現,C#怎樣也不允許我按非虛函數的方式調用一個虛函數。C++可以用類名::方法名的方式訪問自身版本的函數,但C#的類名只能用來訪問靜態的成員。這真是C#一個奇怪的限制。也許是我少見多怪吧.在MSDN中是這么描述的:
MyClass 的行為類似于引用最初實現時類的當前實例的對象變量。VB.NET MyClass與 Me 類似,但對它的所有方法的調用都按該方法為 NotOverridable 來處理。因此,所調用的方法不受派生類中的重寫影響。盡管 DerivedClass 重寫了 MyMethod,但 UseMyClass 中的 MyClass 關鍵字使重寫的影響無效,編譯器會將該調用解析為 MyMethod 的基類版本。
VB.NET MyClass不能在 Shared 方法內部使用,但您可以在實例方法內部使用它來訪問類的共享成員。
這點在商業應用中還是很不錯的,比如父類為一個EmployeeBase,包含一個底薪的數據,那么在實例化雇員的Employee中,Dim e1 as new Employee(EmployeeID),增加員工的底薪的時候,在O/R映像模型建立好之后只需要調用e1.AddSalary(Salary)方法即可調用基類的底薪修改方法.(即統一加底薪).個人意見,呵呵,所得不好,還請大家多多指教.