您所在的位置: 首页>>读书频道>>设计开发>>.Net系列>>

3.1 类和结构

http://book.51cto.com  2007-12-13 14:00  Christian Nagel等著 李铭 译 黄静 审校  清华大学出版社  我要评论(0)
  • 摘要:《C#2005&.NET_3.0高级编程》(第5版)第三章介绍的是类和结构的区别及对类的处理等内容。本文主要介绍的是类和结构。
  • 标签:C#  .NET  Main()    C#2005&.NET_3.0高级编程

第三章 对象和类型

到目前为止,我们介绍了组成C#语言的主要内容,包括变量的声明、数据类型和程序流语句,并简要介绍了一个只包含Main()方法的完整小例子。但还没有介绍如何把这些内容组合在一起,构成一个完整的程序,其关键就在于对类的处理。这就是本章的主题。本章的主要内容如下:

● 类和结构的区别
● 字段、属性和方法
● 按值和引用传送参数
● 方法重载
● 构造函数和静态构造函数
● 只读字段
● Object类,其他类型都从该类派生而来

第4章将介绍继承以及与继承相关的特性。

提示:
本章将讨论与类相关的基本语法,但假定您已经熟悉了使用类的基本原则,例如,知道构造函数和属性的含义,因此我们只是大致论述如何把这些原则应用于C#代码。

本章介绍的这些概念不一定得到了大多数面向对象语言的支持。例如对象构造函数是您熟悉的、使用广泛的一个概念,但静态构造函数就是C#的新增内容,所以我们将解释静态构造函数的工作原理。

3.1  类和结构

类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了每个类对象(称为实例)可以包含什么数据和功能。例如,如果一个类表示一个顾客,就可以定义字段CustomerID、FirstName、LastName和Address,以包含该顾客的信息。还可以定义处理存储在这些字段中的数据的功能。接着,就可以实例化这个类的对象,以表示某个顾客,并为这个实例设置这些字段,使用其功能。

class PhoneCustomer
{
   public const string DayOfSendingBill ="Monday";
 public int CustomerID;
   public string FirstName;
   public string LastName;
}

结构与类的区别是它们在内存中的存储方式(类是存储在堆(heap)上的引用类型,而结构是存储在堆栈(stack)上的值类型)、访问方式和一些特征(如结构不支持继承)。较小的数据类型使用结构可提高性能。但在语法上,结构与类非常相似,主要的区别是使用关键字struct代替class来声明结构。例如,如果希望所有的PhoneCustomer实例都存储在堆栈上,而不是存储在托管堆上,就可以编写下面的语句:

struct PhoneCustomerStruct
{
   public const string DayOfSendingBill = "Monday";
   public int CustomerID;
   public string FirstName;
   public string LastName;
}

对于类和结构,都使用关键字new来声明实例:这个关键字创建对象并对其进行初始化。在下面的例子中,类和结构的字段值都默认为0:

PhoneCustomer myCustomer = new PhoneCustomer();     //works for a class
PhoneCustomerStruct myCustomer2 = new PhoneCustomerStruct(); // works for a struct

在大多数情况下,类要比结构常用得多。因此,我们先讨论类,然后指出类和结构的区别,以及选择使用结构而不使用类的特殊原因。但除非特别说明,否则就可以假定用于类的代码也适用于结构。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节
上一篇: 2.15 小结 下一篇: 3.2.1 数据成员
企业级Web2.0 你准备好了么?
浏览器的战国时代
调查:十大发现 解秘技术人
微软出价446亿美元收购雅虎
Sun以10亿美元并购开源数据库厂商MySQL
 
 验证码: (点击刷新验证码)   匿名发表
  • 野蛮生长

  • 作者:冯仑著
  • “地产界的思想家”冯仑纵横生意江湖20年来,第一次系统梳理出书。  三十年来中国民营企业从前公司时代发展到公司时代,21..
Copyright©2005-2008 51CTO.COM 版权所有