软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

当前位置: 第八基地首页 > asp.net > Framework >
Microsoft .NET 中的基类继承
发布于:第八基地 来源:互联网 作者:天堂路上 时间:2016-04-27 点击:291
构建示例窗体

要创建窗体,请单击Project(项目),然后单击AddWindowsForm(添加Windows窗体)。
将窗体命名为frmLineTest.VB并单击OK(确定)。

然后在该窗体上创建相应的控件并设置属性。

构建Line类

接下来将构建要继承的Line类。

从菜单中单击Project(项目),然后单击AddClass(添加类)。
键入如下所示的代码。

PublicClassLine
PrivatemstrLineAsString

PropertyLine()AsString
Get
ReturnmstrLine
EndGet
Set(ByValValueAsString)
mstrLine=Value
EndSet
EndProperty

ReadOnlyPropertyLength()AsInteger
Get
ReturnmstrLine.Length
EndGet
EndProperty

PublicFunctionGetWord()AsString
DimastrWords()AsString

astrWords=mstrLine.Split("".ToCharArray())

ReturnastrWords(0)
EndFunction
EndClass

创建子类
既然窗体和基类都已经创建完毕,现在便可以开始执行继承了。

单击Project(项目),然后单击AddClass(添加类)。将该类命名为LineDelim.vb并单击OK(确定)。
添加新类时,请修改VisualBasic.net所创建的代码,使之与下面的示例代码相似。

PublicClassLineDelim
InheritsLine

EndClass

因为添加了InheritsLine语句,所以您可以在这一新创建的类中使用Line类的所有属性和方法。

试一试
打开frmLineTest.vb窗体。
双击GetWord(取词)按钮。
向此按钮的单击事件过程添加以下代码:

ProtectedSubbtnFirst_Click(ByValsenderAsObject,_

ByValeAsSystem.EventArgs)HandlesbtnFirst.Click
DimoLineAsLineDelim=NewLineDelim()
oLine.Line=txtLine.Text
txtFirstWord.Text=oLine.GetWord()
EndSub

运行项目,并在窗体上单击GetWord(取词)按钮。您将看到“The”一字出现在按钮旁边的只读文本框中。
Inherits语句的功能非常强大,只需要使用这一个语句,就可以在LineDelim类中使用Line类的所有属性和方法。尽管这个新类尚未执行任何新的操作,但它却表明从Line类中继承的所有代码都可以正常工作。

添加其他功能
现在,您可以使用其他属性和方法对LineDelim类进行扩展。要向LineDelim类添加两个新的属性,请执行以下步骤。

在上一部分添加的Inherits语句后添加两个Private变量,如下所示。

PrivatemstrDelimAsString=""
PrivatemstrOriginalAsString

键入如下代码,为这两个Private变量添加适当的Property语句。您可以将以下代码放在上面输入的两行代码后面(紧挨这两行)。

PublicPropertyDelimiter()AsString
Get
ReturnmstrDelim
EndGet
Set(ByValValueAsString)
mstrDelim=Value
EndSet
EndProperty

PublicReadOnlyPropertyOriginalLine()AsString
Get
ReturnmstrOriginal
EndGet
EndProperty

现在您可以使用Delimiter属性设置并获取Private变量mstrDelim的值。

如果不希望其他人更改这些属性,您可以将属性设为只读。要执行此操作,请不再使用Set语句,并在Property语句中添加ReadOnly属性。有关示例,请参见上面代码中显示的OriginalLine属性声明。

接下来,需要创建一个称为ReplaceAll的方法,此方法可以将文本行中的所有空格替换为传递到Delimiter属性中的分隔符字符。

PublicFunctionReplaceAll()AsString
mstrOriginal=MyBase.Line

ReturnMyBase.Line.Replace("",mstrDelim.ToChar())
EndFunction
对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈