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

經(jīng)驗(yàn)之談VB.NET Protected方法

開發(fā) 后端
這里就VB.NET Protected方法做出了詳細(xì)的分析,當(dāng)變量或者方法被聲明為Protected的時(shí)候,對(duì)于任何類外部的代碼將不能調(diào)用,但是還是可以被由它繼承而來的子類調(diào)用。

VB.NET繼承還是比較常用的,于是我研究了一下VB.NET Protected方法,在這里拿出來和大家分享一下,希望對(duì)大家有用。當(dāng)我們通過繼承來創(chuàng)建一個(gè)子類的時(shí)候,新類就可以從父類中得到了所有的Public(公共)和Friend(友)方法、屬性和變量。

#T#如果你在父類中聲明一個(gè)Private(私有)的方法、屬性和變量,那么在新的子類中就不能得到這個(gè)類的方法、屬性和變量。當(dāng)然也有個(gè)例外,就是New方法。構(gòu)造函數(shù)方法必須在每一個(gè)子類中重新編寫。這個(gè)內(nèi)容我們?cè)诒窘坛痰暮竺鎸⑸钊胗懻摗Ee個(gè)例子,我們可能從LineItem類中重寫Amount方法,具體如下:

  1. Public Function Amount() As Single   
  2. Return CalcAmount   
  3. End Function  
  4.  
  5. Private Function CalcAmount() As Single  
  6. Return fQuantity * fPrice  
  7. End Function   

從這個(gè)改變中,我們可以看到公共的方法Amount使用了Private方法來工作。當(dāng)我們利用LineItem來創(chuàng)建子類ServiceLine的時(shí)候,任何的ServiceLine對(duì)象都有一個(gè)Amount方法,因?yàn)樗诨愔新暶鳛镻ublic。另外一方面,這個(gè)CalcAmount方法被聲明為Private,所以所有的ServiceLine類和任何的客戶代碼都不能訪問它。這里值得一提的是,既然Amount方法存在于LineItem類中,它就可以訪問CalcAmount方法即使在ServiceLine類中不能看到這個(gè)方法。

舉個(gè)例子,在我們的客戶代碼中我們可以這樣做:

  1. Protected Sub Button1_Click(ByVal sender As Object, _  
  2. ByVal e As System.EventArgs)  
  3. Dim sl As ServiceLine  
  4.  
  5. sl = New ServiceLine()  
  6. sl.Item = delivery sl.Price = 20 
  7. sl.DateProvided = Now 
  8. MsgBox(sl.Amount, MsgBoxStyle.Information, amount)  
  9. End Sub  

結(jié)果顯示在一個(gè)消息框中,這樣就闡明了CalcAmount方法被成功調(diào)用了,雖然客戶代碼和ServiceLine代碼沒有直接調(diào)用它。

VB.NET Protected方法

有時(shí),Public和Private并不能滿足我們的要求。如果我們想聲明一些變量或者方法為Private,那么這些變量和方法就只能在我們的類中使用;但是當(dāng)我們聲明一些變量和方法為Public或者Friend,那么這些變量和方法就可以在子類和客戶代碼中使用。但是,有時(shí)有聲明一些變量和方法,讓它們?cè)谧宇愔杏行В诳蛻舸a中不能用,該怎么辦呢?這里可以使用VB.NET Protected方法轄域。當(dāng)變量或者方法被聲明為Protected的時(shí)候,對(duì)于任何類外部的代碼將不能調(diào)用,但是還是可以被由它繼承而來的子類調(diào)用。舉個(gè)VB.NET Protected方法例子吧,如下:

  1. Public Class ParentClass  
  2. Protected TheValue As Integer  
  3. End Class  
  4.  
  5. Public Class SubClass  
  6. Inherits ParentClass  
  7.  
  8. Public Function GetValue() As Integer  
  9. Return TheValue  
  10. End Function  
  11. End Class  

在上面的代碼中我們有一個(gè)父類,它有一個(gè)Protected成員變量TheValue。這個(gè)變量在任何的客戶代碼中都不能被調(diào)用。但是這個(gè)變量對(duì)于任何的子類都是有效的因?yàn)樗^承了這個(gè)父類。在這個(gè)例子中,SubClass有一個(gè)Public方法返回了Protected變量的數(shù)值,但是這個(gè)變量對(duì)于類的外部任何客戶代碼都是無效的。

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-02 15:16:07

VB.NET編程

2009-11-02 18:12:45

VB.NET FLAS

2009-10-28 17:00:30

VB.NET數(shù)據(jù)庫

2009-10-27 17:08:35

VB.NET流操作文件

2009-12-23 10:07:57

學(xué)習(xí)WPF

2009-10-13 17:08:10

CLR VB.NET

2009-11-09 17:06:38

WCF選擇綁定

2009-12-17 18:12:31

Ruby框架應(yīng)用

2010-03-02 17:48:35

WCF尋址報(bào)頭

2010-04-30 14:31:58

Unix系統(tǒng)

2009-12-09 16:58:03

PHP strtoti

2009-10-10 15:43:51

2010-01-14 18:14:22

VB.NET開發(fā)特點(diǎn)

2009-10-16 14:31:48

VB.NET Noti

2009-10-14 11:27:20

VB.NET Grou

2009-10-26 13:13:17

VB.NET編碼規(guī)范

2010-04-22 18:07:28

Aix系統(tǒng)維護(hù)

2012-05-23 09:43:59

Linux升級(jí)經(jīng)驗(yàn)

2009-11-16 15:32:05

PHP數(shù)組函數(shù)

2009-11-05 15:50:25

WCF behavio
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久免费精品 | 一级毛片免费看 | 国产精品久久久久久久久免费桃花 | 国内自拍真实伦在线观看 | 日韩色在线 | 久久精品国产一区二区三区不卡 | 国产黄色精品 | 日韩一区在线观看视频 | 欧美片网站免费 | 日韩av在线免费 | 国产激情一区二区三区 | 日韩波多野结衣 | 毛片一级片 | 欧美日韩在线一区二区 | 欧美日韩国产精品一区 | 精品一区二区三区日本 | jlzzjlzz国产精品久久 | 日韩中文字幕久久 | www.日韩av.com| 伊人成人免费视频 | 国产在线精品一区 | 久久精品99 | 成人精品国产 | 亚洲午夜精品一区二区三区他趣 | 国产高清一区二区三区 | 亚洲国产欧美在线 | 国产成人综合在线 | 激情小视频 | 亚洲国产一区二区视频 | 午夜免费精品视频 | 国产精品久久777777 | 午夜精品一区二区三区在线观看 | av在线播放免费 | 毛片一区| 欧美一区二区在线观看 | 日韩精品一区二区不卡 | 中文字幕一区二区在线观看 | 亚洲精品一区二区三区蜜桃久 | 精品1区2区 | 亚洲日韩欧美一区二区在线 | 午夜一级黄色片 |