偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

#T#如果你在父類(lèi)中聲明一個(gè)Private(私有)的方法、屬性和變量,那么在新的子類(lèi)中就不能得到這個(gè)類(lèi)的方法、屬性和變量。當(dāng)然也有個(gè)例外,就是New方法。構(gòu)造函數(shù)方法必須在每一個(gè)子類(lèi)中重新編寫(xiě)。這個(gè)內(nèi)容我們?cè)诒窘坛痰暮竺鎸⑸钊胗懻摗Ee個(gè)例子,我們可能從LineItem類(lèi)中重寫(xiě)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方法來(lái)工作。當(dāng)我們利用LineItem來(lái)創(chuàng)建子類(lèi)ServiceLine的時(shí)候,任何的ServiceLine對(duì)象都有一個(gè)Amount方法,因?yàn)樗诨?lèi)中聲明為Public。另外一方面,這個(gè)CalcAmount方法被聲明為Private,所以所有的ServiceLine類(lèi)和任何的客戶(hù)代碼都不能訪問(wèn)它。這里值得一提的是,既然Amount方法存在于LineItem類(lèi)中,它就可以訪問(wèn)CalcAmount方法即使在ServiceLine類(lèi)中不能看到這個(gè)方法。

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

  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)用了,雖然客戶(hù)代碼和ServiceLine代碼沒(méi)有直接調(diào)用它。

VB.NET Protected方法

有時(shí),Public和Private并不能滿(mǎn)足我們的要求。如果我們想聲明一些變量或者方法為Private,那么這些變量和方法就只能在我們的類(lèi)中使用;但是當(dāng)我們聲明一些變量和方法為Public或者Friend,那么這些變量和方法就可以在子類(lèi)和客戶(hù)代碼中使用。但是,有時(shí)有聲明一些變量和方法,讓它們?cè)谧宇?lèi)中有效,而在客戶(hù)代碼中不能用,該怎么辦呢?這里可以使用VB.NET Protected方法轄域。當(dāng)變量或者方法被聲明為Protected的時(shí)候,對(duì)于任何類(lèi)外部的代碼將不能調(diào)用,但是還是可以被由它繼承而來(lái)的子類(lèi)調(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è)父類(lèi),它有一個(gè)Protected成員變量TheValue。這個(gè)變量在任何的客戶(hù)代碼中都不能被調(diào)用。但是這個(gè)變量對(duì)于任何的子類(lèi)都是有效的因?yàn)樗^承了這個(gè)父類(lèi)。在這個(gè)例子中,SubClass有一個(gè)Public方法返回了Protected變量的數(shù)值,但是這個(gè)變量對(duì)于類(lèi)的外部任何客戶(hù)代碼都是無(wú)效的。

責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(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ù)庫(kù)

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開(kāi)發(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)