偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳細(xì)介紹VB.NET MyClass

開(kāi)發(fā) 后端
這里介紹大部分人使用VB.NET MyClass可能僅限于調(diào)用本類其他構(gòu)造函數(shù)時(shí)。其實(shí)MyClass可以產(chǎn)生一些很獨(dú)特的用法。

學(xué)習(xí)VB.NET時(shí),你可能會(huì)遇到VB.NET MyClass問(wèn)題,這里將介紹VB.NET MyClass問(wèn)題的解決方法,在這里拿出來(lái)和大家分享一下。VB.NET支持一項(xiàng)很有意思的功能——MyClass。大部分人使用VB.NET MyClass可能僅限于調(diào)用本類其他構(gòu)造函數(shù)時(shí)。其實(shí)MyClass可以產(chǎn)生一些很獨(dú)特的用法。MyClass永遠(yuǎn)按類的成員為不可重寫(xiě)的狀態(tài)進(jìn)行調(diào)用,即當(dāng)類的方法被重寫(xiě)后,用MyClass仍能得到自身的版本。下面這個(gè)例子和VB幫助中所舉的例子非常相似

  1. Public Class MyClassBase  
  2. Protected Overridable Sub Greeting()  
  3. Console.WriteLine("Hello form Base")  
  4. End Sub  
  5.  
  6. Public Sub UseMe()  
  7. Me.Greeting()  
  8. End Sub  
  9.  
  10. Public Sub UseMyClass()  
  11. MyClass.Greeting()  
  12. End Sub  
  13. End Class  
  14.  
  15. Public Class MyClassSub  
  16. Inherits MyClassBase  
  17.  
  18. Protected Overrides Sub Greeting()  
  19. Console.WriteLine("Hello form Sub")  
  20. End Sub  
  21. End Class 

我們用一段代碼來(lái)測(cè)試:

  1. Dim o As MyClassBase = New MyClassSub()  
  2. o.UseMe()  
  3. o.UseMyClass() 

結(jié)果是UseMe執(zhí)行了子類的版本,而UseMyClass還是執(zhí)行了基類本身的版本,盡管這是一個(gè)虛擬方法。觀其IL,可以看到其簡(jiǎn)單的實(shí)現(xiàn)原理:

Me用的調(diào)用指令是callvirt

  1. IL_0001: callvirt   instance void App1.MyClassBase::Greeting() 

而VB.NET MyClass調(diào)用的是call

  1. IL_0001:  call       instance void App1.MyClassBase::Greeting() 

奇怪的是,如此簡(jiǎn)單的一個(gè)功能,我竟然無(wú)法用C#實(shí)現(xiàn),C#怎樣也不允許我按非虛函數(shù)的方式調(diào)用一個(gè)虛函數(shù)。C++可以用類名::方法名的方式訪問(wèn)自身版本的函數(shù),但C#的類名只能用來(lái)訪問(wèn)靜態(tài)的成員。這真是C#一個(gè)奇怪的限制。

【編輯推薦】

  1. 原理分析VB.NET開(kāi)發(fā)控件
  2. 自己動(dòng)手修改VB.NET支付寶接口
  3. 如何快速掌握VB.NET控件數(shù)組
  4. 描述VB.NET IDisplayer接口
  5. 事例概括VB.NET Display方法
責(zé)任編輯:佚名 來(lái)源: CSDN
相關(guān)推薦

2009-11-10 12:42:47

VB.NET Prin

2009-10-12 15:02:51

VB.NET動(dòng)態(tài)控件

2010-01-21 16:45:00

VB.NET繼承規(guī)則

2010-01-21 14:06:03

VB.NET MyCl

2010-01-08 13:35:35

VB.NET寫(xiě)Log方

2010-01-08 09:43:21

VB.NET漢字轉(zhuǎn)換

2009-11-10 12:48:17

VB.NET三維模型

2010-01-08 15:03:12

VB.NET類屬性

2010-01-08 14:14:27

VB.NET使用Fin

2010-01-14 18:22:05

VB.NET硬盤(pán)速度測(cè)

2010-01-22 14:19:38

VB.NET調(diào)用jar

2009-10-10 16:44:52

VB.NET開(kāi)發(fā)控件

2010-01-13 16:15:47

VB.NET消息隊(duì)列

2010-01-07 15:18:10

VB.NET常量

2009-10-12 13:54:22

VB.NET Data

2009-10-13 17:03:55

VB.NET面向?qū)ο?/a>

2009-11-02 15:45:03

VB.NET IEnu

2010-01-22 10:41:33

VB.NET聲明結(jié)構(gòu)

2009-10-12 13:19:14

VB.NET線程同步

2009-11-10 10:28:20

VB.NET誕生
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)