91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

VB.NET中MyClass的作用是什么

發布時間:2021-07-14 16:57:03 來源:億速云 閱讀:160 作者:Leah 欄目:編程語言

VB.NET中MyClass的作用是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

學習VB.NET時,你可能會遇到VB.NET MyClass問題,這里將介紹VB.NET MyClass問題的解決方法,在這里拿出來和大家分享一下。VB.NET支持一項很有意思的功能——MyClass。大部分人使用VB.NET MyClass可能僅限于調用本類其他構造函數時。其實MyClass可以產生一些很獨特的用法。MyClass永遠按類的成員為不可重寫的狀態進行調用,即當類的方法被重寫后,用MyClass仍能得到自身的版本。下面這個例子和VB幫助中所舉的例子非常相似

Public Class MyClassBase  Protected Overridable Sub Greeting()  Console.WriteLine("Hello form Base")  End Sub   Public Sub UseMe()  Me.Greeting()  End Sub   Public Sub UseMyClass()  MyClass.Greeting()  End Sub  End Class   Public Class MyClassSub  Inherits MyClassBase   Protected Overrides Sub Greeting()  Console.WriteLine("Hello form Sub")  End Sub  End Class

我們用一段代碼來測試:

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

結果是UseMe執行了子類的版本,而UseMyClass還是執行了基類本身的版本,盡管這是一個虛擬方法。觀其IL,可以看到其簡單的實現原理:

Me用的調用指令是callvirt

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

而VB.NET MyClass調用的是call

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

奇怪的是,如此簡單的一個功能,我竟然無法用C#實現,C#怎樣也不允許我按非虛函數的方式調用一個虛函數。C++可以用類名::方法名的方式訪問自身版本的函數,但C#的類名只能用來訪問靜態的成員。

關于VB.NET中MyClass的作用是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

偃师市| 鱼台县| 台中县| 温泉县| 镇赉县| 安宁市| 潞西市| 襄垣县| 聂拉木县| 武强县| 鄂州市| 新乡市| 项城市| 鲁甸县| 平谷区| 白沙| 行唐县| 卓资县| 抚远县| 江山市| 阿拉善盟| 津南区| 敦化市| 平乡县| 岚皋县| 许昌市| 额济纳旗| 曲水县| 青田县| 逊克县| 汶川县| 永吉县| 思茅市| 新源县| 浦江县| 类乌齐县| 明光市| 南澳县| 岚皋县| 五原县| 颍上县|