VB.NET MyClass使用方法细讲

开发 后端
VB.NET MyClass是不能够在Shared方法中使用的,不过我们可以在实例方法内部使用这一关键字来帮助我们进行共享成员的访问。

VB.NET编程语言,与其他种类的编程语言相比还是有很多不同之处,有很多比较突出的特点,使他一经出现就立即受到了开发人员的关注和使用。今天,大家将会认识到VB.NET MyClass的行馆使用方法,方便大家理解这项语言的具体功能及应用技巧。

关于VB.NET MyClass,大家请先建立一个vbConsoleApplication程序,将本文SourceCP进去

 

  1. Module Module1   
  2. Class BaseClass   
  3. Public Overridable Sub MyMethod()   
  4. Console.WriteLine("Father is 50 years old!")   
  5. End Sub   
  6. Public Sub UseMe()   
  7. Me.MyMethod() ' Use calling class's version, even if an override.   
  8. End Sub   
  9. Public Sub UseMyClass()   
  10. MyClass.MyMethod() ' Use this version and not any override.   
  11. End Sub   
  12. End Class   
  13. Class DerivedClass : Inherits BaseClass   
  14. Public Overrides Sub MyMethod()   
  15. Console.WriteLine("child is just 25 years old!")   
  16. End Sub   
  17. End Class   
  18. Sub Main()   
  19. Dim child As New DerivedClass   
  20. child.UseMe()   
  21. child.UseMyClass()   
  22. Console.ReadLine()   
  23. End Sub   
  24. 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)方法即可调用基类的底薪修改方法.(即统一加底薪).个人意见,呵呵,所得不好,还请大家多多指教.

责任编辑:曹凯 来源: wewill.cn
相关推荐

2009-10-28 09:55:29

VB.NET MyCl

2010-01-22 15:25:46

VB.NET Time

2010-01-20 17:47:54

VB.NET注释

2010-01-21 17:23:05

VB.NET Radi

2009-10-26 13:36:58

VB.NET Spli

2010-01-19 09:36:06

VB.NET Func

2010-01-19 14:50:20

VB.NET集合

2010-01-20 13:28:35

VB.NET计算数字

2010-01-18 13:12:43

VB.NET控件数组

2010-01-20 10:27:07

VB.NET隐式类型局

2009-10-13 15:20:02

VB.NET使用Dra

2009-11-03 09:26:13

VB.NET方法

2010-01-11 16:04:10

VB.NET使用wit

2009-10-14 17:08:44

VB.NET使用Fil

2009-11-03 13:48:02

VB.NET枚举

2009-10-26 15:57:07

VB.NET使用Ora

2009-10-27 11:32:42

VB.NET Disp

2010-01-21 10:48:18

VB.NET扩展方法

2009-11-03 10:51:33

VB.NET共享

2009-10-14 16:46:25

VB.NET OnSt
点赞
收藏

51CTO技术栈公众号