中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

VB.NET構造函數實際處理方式

發布時間:2021-11-22 18:41:03 來源:億速云 閱讀:220 作者:柒染 欄目:編程語言

這篇文章給大家介紹VB.NET構造函數實際處理方式,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在開發領域,已經出現了許多種開發語言供編程人員隨自己的需求進行選擇應用。比如VB.NET語言就可以對有特定需求的開發人員進行一定的幫助。VB.NET構造函數進行處理的時侯,有兩個陳述值得注意:

  • VB.NET控件數組問題相關解決方案解析

  • 閑談VB.NET cstr函數性能特點

  • VB.NET連接數據庫相關操作技巧介紹

  • 深入剖析VB.NET驗證LDAP用戶身份

  • 詳細解讀VB.NET實現Singleton模式操作步

(1) 如果類型不包含任何實例構造函數聲明,則VB.NET提供默認的構造函數;

默認參數調用直接基類的無參數構造函數。如果基類沒有可訪問的無參數構造函數,則發生編譯期錯誤。

(2) 構造函數不能繼承;

陳述(1)包含兩個方面的信息:

①是如果類型不包含任何實例構造函數聲明,則VB.NET提供默認的構造函數,即下面的聲明是允許的,在類Shape中我們沒有顯式聲明任何構造函數,但是我們仍然可以通過VB.NET自動提供的無參數構造函數New()來實例化類;

  1. Module TestModule Test   

  2. Public Sub Main()Sub Main()   

  3. Dim shape1 As Shape = New Shape   

  4. End Sub   

  5. End Module   

  6. Public Class ShapeClass Shape   

  7. Public Sub Draw()Sub Draw()   

  8. 'some codes here.   

  9. End Sub   

  10. End Class  

②是如果類型中包含有實例構造函數的聲明,那么VB.NET不再提供默認的構造函數,例如,我們在類Shape中添加了一個帶參數的構造函數,

Public Class ShapeClass Shape   Private _pt As Point   Public Sub New()Sub New(p As Point)   _pt = p   End Sub   Public Sub Draw()Sub Draw()   'some codes here.   End Sub   End Class

那么,如果直接實例化類時,則會產生錯誤;

Dim shape1 As Shape = New Shape

只能通過調用Shape類中顯式聲明的帶參數的構造函數來實例化類,如下,

Dim shape1 As Shape = New Shape(New Point(0, 0))

因此,如果要在類中同時使用無參數和帶參數的構造函數,必須同時顯式地聲明兩種構造函數。

Public Class ShapeClass Shape   Private _pt As Point   Public Sub New()Sub New()   'some codes here.   End Sub   Public Sub New()Sub New(p As Point)   _pt = p   End Sub   Public Sub Draw()Sub Draw()   'some codes here.   End Sub   End Class

陳述(2),構造函數不能繼承,即,如果要使子類與基類有相同的構造函數,那么必須在每個子類中都顯式的聲明與基類構造相同的構造函數,例如:

  1. Public MustInherit Class 
    ShapeClass Shape   

  2. Private _pt As Point   

  3. Public Sub New()Sub New()   

  4. 'some codes here.   

  5. End Sub   

  6. Public Sub New()Sub New(p As Point)   

  7. _pt = p   

  8. End Sub   

  9. Public MustOverride Sub Draw()Sub Draw()   

  10. End Class   

  11. Public Class LineClass Line   

  12. Inherits Shape   

  13. Public Sub New()Sub New()   

  14. End Sub   

  15. Public Sub New()Sub New(p As Point)   

  16. MyBase.New(p)   

  17. End Sub   

  18. Public Overrides Sub Draw()Sub Draw()   

  19. 'some codes here.   

  20. End Sub   

  21. End Class  

這一點非常重要而且也很有意義。因為我們往往傾向于認為子類繼承了基類所有的屬性和方法,這往往導致我們的程序出現編譯錯誤。

綜合以上兩個陳述,在實際編程中應遵循一個原則:在類中,無論是基類還是子類,顯式地聲明所有需要的無參數或帶參數構造函數。遵循這個原則,既有利于提高編譯正確代碼的速度,也有利于自己和其他程序員理解代碼。

關于VB.NET構造函數實際處理方式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

赞皇县| 墨玉县| 乌恰县| 益阳市| 长顺县| 康马县| 禄劝| 渝中区| 台南市| 永胜县| 荔浦县| 怀安县| 日喀则市| 玉环县| 潼南县| 黎川县| 汉源县| 琼中| 浦东新区| 永兴县| 广南县| 紫阳县| 镇江市| 江永县| 开远市| 凤山县| 丹江口市| 阳新县| 大田县| 丹东市| 库伦旗| 佛学| 大关县| 冕宁县| 潼南县| 尉氏县| 搜索| 九龙坡区| 南京市| 瓮安县| 鄂尔多斯市|