当前时间 加入收藏 设为首页 联系站长
先锋站长网
您的位置:>首页 -> 技术文章 -> .NET编程->你必须知道的.NET之class和struct
你必须知道的.NET之class和struct
来源: | 作者: | 时间:2008-03-18 22:17:42 | 录入者:admin
 

  1. 引言

  提起class和struct,我们首先的感觉是语法几乎相同,待遇却翻天复地。历史将接力棒由面向过程编程传到面向对象编程,class和struct也背负着各自的命运前行。在我认为,struct英雄迟暮,class天下独行,最本质的区别是class是引用类型,而struct是值类型,它们在内存中的分配情况有所区别。由此产生的一系列差异性,本文将做以全面讨论。

  2. 基本概念

  2.1. 什么是class?

  class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段、属性、方法、属性、构造函数、索引器、操作符等。因为是基本的概念,所以不必在此详细描述,读者可以查询相关概念了解。我们重点强调的是.NET中,所有的类都最终继承自System.Object类,因此是一种引用类型,也就是说,new一个类的实例时,对象保存了该实例实际数据的引用地址,而对象的值保存在托管堆(managed heap)中。

  2.2. 什么是struct?

  struct(结构)是一种值类型,用于将一组相关的信息变量组织为一个单一的变量实体 。所有的结构都继承自System.ValueType类,因此是一种值类型,也就是说,struct实例分配在线程的堆栈(stack)上,它本身存储了值,而不包含指向该值的指针。所以在使用struct时,我们可以将其当作int、char这样的基本类型类对待。

  3. 相同点,不同点

  相同点:语法类似。

  不同点:

  ·class是引用类型,继承自System.Object类;struct是值类型,继承自System.ValueType类,因此不具多态性。但是注意,System.ValueType是个引用类型。

[上一篇]你必须知道的.NET之特性和属性 [下一篇]用好ASP.NET 2.0的URL映射
 评 论
称  呼:
内  容:
·本站发布内容均为客观表达作者观点,不代表本站立场,请勿攻击和漫骂
·网游发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
最新文章
站长先锋|先锋站长网 (17日)
企业邮局不断壮大 时代邮箱再.. (26日)
网店办照试行 无本经营亮剑何.. (20日)
CN域名年增长率达94.6% (14日)
解读:“.中国”域名幕后的争.. (14日)
后奥运时代互联网将刮繁体风 (11日)
IE8发布与“.中国”域名系统.. (04日)
抢滩WindowsServer2008 主机.. (28日)
“解百纳”千千结难解 .TM域.. (21日)
奥运商机刺激主机市场供求 (16日)
精彩推荐
站长先锋|先锋站长网 (17日)
企业邮局不断壮大 时代邮箱再添 (26日)
网店办照试行 无本经营亮剑何方 (20日)
CN域名年增长率达94.6% (14日)
解读:“.中国”域名幕后的争夺 (14日)
后奥运时代互联网将刮繁体风 (11日)
IE8发布与“.中国”域名系统启 (04日)
抢滩WindowsServer2008 主机商 (28日)
“解百纳”千千结难解 .TM域名 (21日)
观察:中小网站或渐成互联网主角 (14日)
热门咨询
Fs2You为您提供无限大小免费.. (28日)
用电子商务的网站进行信用卡.. (17日)
免费CN域名注册,每个人最多可.. (28日)
由站长论坛为您提供cn或者com.. (28日)
wap站长大全 (17日)
免费600提供600M免费ASP空间 (28日)
ASP如何获取客户端真实IP地址 (26日)
中国网络为注册会员免费赠送.. (28日)
地方分类信息网站推广重心! (16日)
如何编程删除access表中所有.. (22日)
联系方式:MSN:xFzz@hotmail.com QQ:486031、219741、54817814 电话:010-67216557
Copyright@xFzz.com all rights reserved 京ICP备05047353号
Powered by xFzz Code © 2003-07 bbs.xFzz.com