惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
D
Docker
博客园 - 司徒正美
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
U
Unit 42
J
Java Code Geeks
A
About on SuperTechFans
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
T
Threatpost
H
Hacker News: Front Page
G
Google Developers Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
Lohrmann on Cybersecurity
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
S
Secure Thoughts
GbyAI
GbyAI
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog

博客园 - zsi

在线程中调用SaveFileDialog DSOFramer 之一:在 64 位系统注册 DSOFramer GridView 绑定数据不满一页时填充空行的方法 GridView 始终显示 Pager 分页行的一种方法 Chrome: Google加入浏览器大战之兼容性 调用unrar.dll时SEHException外部组件异常的处理 ASP.NET 2.0无法打开到 SQL Server 的连接 扯扯OpenFileDialog和.NET的缺省目录 给ASP.NET程序换换地儿 对象序列化:经验小结 对象序列化:使用XmlSerializer走完最后一步 对象序列化:使用System.Xml.Serialization命名空间 在.NET中实现对象序列化 了解HTTP协议一些有用资料 Yahoo!十岁! 微软新发布的共享设计模式的WIKI 还不快进入Design Pattern的世界? 另人费解的IsNot关键字 也说金山词霸2005内存泄露的问题
在VB.NET中处理构造函数时值得注意的两个陈述
zsi · 2005-02-02 · via 博客园 - zsi

   在VB.NET中处理构造函数时,有两个陈述值得注意:

  (1) 如果类型不包含任何实例构造函数声明,则VB.NET提供默认的构造函数;
  默认参数调用直接基类的无参数构造函数。如果基类没有可访问的无参数构造函数,则发生编译期错误。

  (2) 构造函数不能继承;

  陈述(1)包含两个方面的信息:①是如果类型不包含任何实例构造函数声明,则VB.NET提供默认的构造函数,即下面的声明是允许的,在类Shape中我们没有显式声明任何构造函数,但是我们仍然可以通过VB.NET自动提供的无参数构造函数New()来实例化类;

  ②是如果类型中包含有实例构造函数的声明,那么VB.NET不再提供默认的构造函数,例如,我们在类Shape中添加了一个带参数的构造函数,

  那么,如果直接实例化类时,则会产生错误;

    Dim shape1 As Shape = New Shape

  只能通过调用Shape类中显式声明的带参数的构造函数来实例化类,如下,

    Dim shape1 As Shape = New Shape(New Point(00))

  因此,如果要在类中同时使用无参数和带参数的构造函数,必须同时显式地声明两种构造函数。

  陈述(2),构造函数不能继承,即,如果要使子类与基类有相同的构造函数,那么必须在每个子类中都显式的声明与基类构造相同的构造函数,例如:


  这一点非常重要而且也很有意义。因为我们往往倾向于认为子类继承了基类所有的属性和方法,这往往导致我们的程序出现编译错误。

  综合以上两个陈述,在实际编程中应遵循一个原则:在类中,无论是基类还是子类,显式地声明所有需要的无参数或带参数构造函数。遵循这个原则,既有利于提高编译正确代码的速度,也有利于自己和其他程序员理解代码。