自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

#T#如果你在父類中聲明一個Private(私有)的方法、屬性和變量,那么在新的子類中就不能得到這個類的方法、屬性和變量。當(dāng)然也有個例外,就是New方法。構(gòu)造函數(shù)方法必須在每一個子類中重新編寫。這個內(nèi)容我們在本教程的后面將深入討論。舉個例子,我們可能從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   

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

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

  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é)果顯示在一個消息框中,這樣就闡明了CalcAmount方法被成功調(diào)用了,雖然客戶代碼和ServiceLine代碼沒有直接調(diào)用它。

VB.NET Protected方法

有時,Public和Private并不能滿足我們的要求。如果我們想聲明一些變量或者方法為Private,那么這些變量和方法就只能在我們的類中使用;但是當(dāng)我們聲明一些變量和方法為Public或者Friend,那么這些變量和方法就可以在子類和客戶代碼中使用。但是,有時有聲明一些變量和方法,讓它們在子類中有效,而在客戶代碼中不能用,該怎么辦呢?這里可以使用VB.NET Protected方法轄域。當(dāng)變量或者方法被聲明為Protected的時候,對于任何類外部的代碼將不能調(diào)用,但是還是可以被由它繼承而來的子類調(diào)用。舉個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  

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

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

2009-11-02 15:16:07

VB.NET編程

2009-10-28 17:00:30

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

2009-11-02 18:12:45

VB.NET FLAS

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)用

2009-12-09 16:58:03

PHP strtoti

2010-03-02 17:48:35

WCF尋址報(bào)頭

2010-04-30 14:31:58

Unix系統(tǒng)

2009-10-14 11:27:20

VB.NET Grou

2009-10-16 14:31:48

VB.NET Noti

2010-01-14 18:14:22

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

2009-10-26 13:13:17

VB.NET編碼規(guī)范

2009-10-10 15:43:51

2010-04-22 18:07:28

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

2012-05-23 09:43:59

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

2009-11-05 15:50:25

WCF behavio

2009-11-16 15:32:05

PHP數(shù)組函數(shù)
點(diǎn)贊
收藏

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