频道栏目
读书频道 > 软件开发 > C# > C#高级编程(第8版)
3.5.3 结构的构造函数
2013-10-26 09:09:57     我来说两句
收藏   我要投稿

本文所属图书 > C#高级编程(第8版)

《C 高级编程(第8版)》是C 2012和 NET 4 5高级技术的终极资源,旨在帮助读者更新、提高用C 2012和 NET 4 5编写Windows应用程序、Web应用程序、Windows 8样式应用程序的技巧。本书的顶级作者专家团队首先介  立即去当当网订购

为结构定义构造函数的方式与为类定义构造函数的方式相同,但不允许定义无参数的构造函数。这看起来似乎没有意义,但其原因隐藏在.NET运行库的实现方式中。在一些极罕见的情况中,.NET运行库不能调用用户提供的自定义无参数构造函数,因此Microsoft干脆采用一种非常简单的方式:禁止在C#的结构内使用无参数的构造函数。

前面说过,默认构造函数把数值字段都初始化为0,把引用类型字段初始化为null,且总是隐式地给出,即使提供了其他带参数的构造函数,也是如此。提供字段的初始值也不能绕过默认构造函数。下面的代码会产生编译错误:
struct Dimensions
{
public double Length = 1;  // error. Initial values not allowed
public double Width = 2;   // error. Initial values not allowed
}

当然,如果Dimensions声明为一个类,这段代码就不会有编译错误。

另外,可以像类那样为结构提供Close()或Dispose()方法。第14章将讨论Dispose()方法。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.5.2 结构和继承
下一篇:3.6 弱引用
相关文章
图文推荐
排行
热门
最新书评
文章
下载
读书
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站