成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 后端
VB.NET構造函數在實際處理過程中有些細節地方值得我們去注意。下面就通過本文介紹的相關內容對此進行詳細的解讀。

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

(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中添加了一個帶參數的構造函數,

  1. Public Class ShapeClass Shape   
  2. Private _pt As Point   
  3. Public Sub New()Sub New(p As Point)   
  4. _pt = p   
  5. End Sub   
  6. Public Sub Draw()Sub Draw()   
  7. 'some codes here.   
  8. End Sub   
  9. End Class  

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

Dim shape1 As Shape = New Shape

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

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

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

  1. Public 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 Sub Draw()Sub Draw()   
  10. 'some codes here.   
  11. End Sub   
  12. 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  

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

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

責任編輯:曹凱 來源: 博客園
相關推薦

2010-01-18 16:58:29

VB.NET Over

2010-01-13 17:23:36

VB.NET動態事件

2010-01-22 18:32:23

VB.NET數據并發性

2010-01-11 17:58:36

VB.NET壓縮ZIP

2010-01-11 10:44:47

VB.NET多窗體

2009-11-02 09:43:01

VB.NET構造函數

2009-10-14 13:21:46

VB.NET Acco

2009-10-28 17:44:31

VB.NET語言

2010-01-18 17:37:32

VB.NET文本框處理

2009-10-12 13:32:58

VB.NET線程構造器

2010-01-12 18:12:58

VB.NET事件

2009-10-30 15:37:23

VB.NET Sub創

2009-10-15 09:16:35

VB.NET重新申明數

2009-10-16 11:38:47

VB.NET使用Ali

2009-10-21 10:45:50

VB.NET Quic

2009-10-15 17:50:48

VB.NET Spli

2010-01-07 18:05:18

VB.NET事務處理

2009-11-03 09:48:47

VB.NET構造

2009-11-02 17:54:44

VB.NET數組

2010-01-07 18:17:00

VB.NET連接SAP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区中文 | 国产精品国产精品国产专区不卡 | 成人免费视频网站在线观看 | 午夜精品在线观看 | 国产精品成人在线 | 国精日本亚洲欧州国产中文久久 | 国产成人精品一区二区三区视频 | 国产一区二区毛片 | 久久久久久久久久久成人 | 天天综合操| 亚洲人在线播放 | 午夜精品久久 | 国产91一区二区三区 | 午夜私人影院在线观看 | 国产精品久久久久久久久久东京 | 性高湖久久久久久久久 | 国产在线一区二区三区 | 91精品国产91久久综合桃花 | 欧美色综合| 日韩成人免费在线视频 | 成人在线免费网站 | 欧美手机在线 | tube国产| 日本免费小视频 | 国产精品国产馆在线真实露脸 | 亚洲国产精品一区二区三区 | 国产资源视频 | 免费激情 | 国产高清无av久久 | 99欧美精品 | 欧美精品中文字幕久久二区 | 二区av | 一区二区三区网站 | 欧美在线小视频 | 超碰免费在线 | 一区二区三区视频在线观看 | 亚洲欧洲在线视频 | 超碰免费在线观看 | 精品国产乱码久久久久久闺蜜 | 成人欧美日韩一区二区三区 | 欧美国产精品一区二区 |