背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-58448.html    注册17xie 一起来写书 实现您的出书梦想!

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

       类和结构的区别

       字段、属性和方法

       按值和引用传送参数

       方法重载

       构造函数和静态构造函数

       只读字段

       Object类,其他类型都从该类派生而来

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

提示:

本章将讨论与类相关的基本语法,但假定您已经熟悉了使用类的基本原则,例如,知道构造函数和属性的含义,因此我们只是大致论述如何把这些原则应用于C#代码。如果您不熟悉类的概念,请参阅附录A,并可从网站www.wrox.com上下载本书的代码。

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

3.1  类和结构

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

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

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



字数:1880    最后更新:7个月以前 [04-10 21:05]happyskynet 修改
本页编辑者:happyskynet  
[前一页]:2.14 C#编程规则  [后一页]:3.2 类成员
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号