MyBase 關鍵字
可以從任一子類使用 MyBase 關鍵字,以調用基類中的任何屬性或方法。即使基類的方法在子類中已被覆蓋,您也可以使用該關鍵字對其進行調用。例如,如果在基類中存在 ReplaceAll 方法,但在子類中該方法已被覆蓋,您可以從子類的 ReplaceAll 方法中調用基類的 ReplaceAll 方法。試一試打開 frmLineTest.vb 窗體。
雙擊 Replace(替換)以調出單擊事件過程。
在 btnReplace 按鈕的單擊事件中編寫以下代碼:Protected Sub btnReplace_Click( _ ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnReplace.Click Dim oLine As LineDelim = New LineDelim() oLine.Delimiter = txtDelim.Text oLine.Line = txtLine.Text txtReplace.Text = oLine.ReplaceAll()End Sub
此代碼將 Delimiter 屬性設置為在示例窗體的 txtDelimiter 文本框中輸入的值。然後您可以調用 ReplaceAll 方法,將文本行中的所有空格更改為新的分隔符字符。
按 F5 鍵運行該項目。
單擊 Replace(替換)。您將看到,在此按鈕旁邊的文本框中,句中的每個詞之間都有一個逗號。
覆蓋方法
添加 Delimiter 屬性後,您可能想更改 LineDelim 類中的 GetWord 方法,以便使用相應的分隔符替代 Line 類使用的單個空格。因為您不一定想更改基類,所以需要覆蓋 LineDelim 類中 GetWord 方法的功能。在 LineDelim 類中創建新的 GetWord 方法之前,您需要在 Line 類的 GetWord 方法聲明中添加一個關鍵字。
在 Solution Explorer(解決方案資源管理器)窗口中,打開 Line.vb 類的代碼窗口。
找到 GetWord 方法的聲明(聲明不包含參數),如下所示:Public Overloads Function GetWord() As String在函數聲明中添加關鍵字 Overridable,如下所示(沒有此關鍵字,就無法覆蓋此方法)。Public Overridable Overloads Function GetWord() As String打開 LineDelim.vb 類,並使用如下代碼添加新的 GetWord 方法。Public Overloads Overrides Function GetWord() As String Dim astrWords() As String astrWords = MyBase.Line.Split(mstrDelim.ToCharArray()) Return astrWords(0)End Function