在开发领域,已经出现了许多种开发语言供编程人员随自己的需求进行选择应用。比如VB.NET语言就可以对有特定需求的开发人员进行一定的帮助。VB.NET构造函数进行处理的时侯,有两个陈述值得注意: #t#
创新互联建站服务项目包括宁武网站建设、宁武网站制作、宁武网页制作以及宁武网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,宁武网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到宁武省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
(1) 如果类型不包含任何实例构造函数声明,则VB.NET提供默认的构造函数;
默认参数调用直接基类的无参数构造函数。如果基类没有可访问的无参数构造函数,则发生编译期错误。
(2) 构造函数不能继承;
陈述(1)包含两个方面的信息:
①是如果类型不包含任何实例构造函数声明,则VB.NET提供默认的构造函数,即下面的声明是允许的,在类Shape中我们没有显式声明任何构造函数,但是我们仍然可以通过VB.NET自动提供的无参数构造函数New()来实例化类;
②是如果类型中包含有实例构造函数的声明,那么VB.NET不再提供默认的构造函数,例如,我们在类Shape中添加了一个带参数的构造函数,
- Public Class ShapeClass Shape
- Private _pt As Point
- Public Sub New()Sub New(p As Point)
- _pt = p
- End Sub
- Public Sub Draw()Sub Draw()
- 'some codes here.
- End Sub
- End Class
那么,如果直接实例化类时,则会产生错误;
Dim shape1 As Shape = New Shape
只能通过调用Shape类中显式声明的带参数的构造函数来实例化类,如下,
Dim shape1 As Shape = New Shape(New Point(0, 0))
因此,如果要在类中同时使用无参数和带参数的构造函数,必须同时显式地声明两种构造函数。
- Public Class ShapeClass Shape
- Private _pt As Point
- Public Sub New()Sub New()
- 'some codes here.
- End Sub
- Public Sub New()Sub New(p As Point)
- _pt = p
- End Sub
- Public Sub Draw()Sub Draw()
- 'some codes here.
- End Sub
- End Class
陈述(2),构造函数不能继承,即,如果要使子类与基类有相同的构造函数,那么必须在每个子类中都显式的声明与基类构造相同的构造函数,例如:
- Public MustInherit Class
ShapeClass Shape- Private _pt As Point
- Public Sub New()Sub New()
- 'some codes here.
- End Sub
- Public Sub New()Sub New(p As Point)
- _pt = p
- End Sub
- Public MustOverride Sub Draw()Sub Draw()
- End Class
- Public Class LineClass Line
- Inherits Shape
- Public Sub New()Sub New()
- End Sub
- Public Sub New()Sub New(p As Point)
- MyBase.New(p)
- End Sub
- Public Overrides Sub Draw()Sub Draw()
- 'some codes here.
- End Sub
- End Class
这一点非常重要而且也很有意义。因为我们往往倾向于认为子类继承了基类所有的属性和方法,这往往导致我们的程序出现编译错误。
综合以上两个陈述,在实际编程中应遵循一个原则:在类中,无论是基类还是子类,显式地声明所有需要的无参数或带参数构造函数。遵循这个原则,既有利于提高编译正确代码的速度,也有利于自己和其他程序员理解代码。
网站名称:VB.NET构造函数实际处理方式简介
标题路径:http://www.csdahua.cn/qtweb/news41/489741.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网