2012年5月16日

13.C#编程指南-继承

摘要: 继承(加上封装和多态性)是面向对象的编程的三个主要特性(也称为“支柱”)之一。继承用于创建可重用、扩展和修改在其他类中定义的行为的新类。其成员被继承的类称为“基类”,继承这些成员的类称为“派生类”。派生类只能有一个直接基类。但是,继承是可传递的。如果 ClassB 派生出 ClassC,ClassA 派生出 ClassB,则 ClassC 会继承 ClassB 和 ClassA 中声明的成员。定义一个类从其他类派生时,派生类隐式获得基类的除构造函数和析构函数以外的所有成员。因此,派生类可以重用基类中的代码而无需重定实现这些代码。可以在派生类中添加更多成员。派生类以这种方式扩展基类的功能。下图演 阅读全文

posted @ 2012-05-16 17:38 YeChun 阅读(220) 评论(0) 推荐(0) 编辑

2012年5月14日

12.C#编程指南-结构

摘要: 结构是使用 struct 关键字定义的,例如:public struct PostalAddress{ // Fields, properties, methods and events go here...}结构与类共享大多数相同的语法,但结构比类受到的限制更多:在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构在赋值时进行复制。 将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。 在使用值类型的集合(如 Dictionary<string, myStruct 阅读全文

posted @ 2012-05-14 22:47 YeChun 阅读(165) 评论(0) 推荐(0) 编辑

11.C#编程指南-对象

摘要: 类或结构定义的作用类似于蓝图,指定该类型可以进行哪些操作。从本质上说,对象是按照此蓝图分配和配置的内存块。程序可以创建同一个类的多个对象。对象也称为实例,可以存储在命名变量中,也可以存储在数组或集合中。使用这些变量来调用对象方法及访问对象公共属性的代码称为客户端代码。对象标识与值相等性在比较两个对象是否相等时,首先必须明确您是想知道两个变量是否表示内存中的同一对象,还是想知道这两个对象的一个或多个字段的值是否相等。如果您要对值进行比较,则必须考虑这两个对象是值类型(结构)的实例还是引用类型(类、委托、数组)的实例。若要确定两个类实例是否引用内存中的同一位置(意味着它们具有相同的标识),可使用静 阅读全文

posted @ 2012-05-14 18:34 YeChun 阅读(178) 评论(0) 推荐(0) 编辑

10.C#编程指定-类

摘要: “类”是一种构造,通过使用该构造,您可以将其他类型的变量、方法和事件组合在一起,从而创建自己的自定义类型。 类就像一个蓝图, 它定义类型的数据和行为。 如果类没有声明为静态类,客户端代码就可以创建赋给变量的“对象”或“实例”,从而使用该类。 在对变量的所有引用都超出范围之前,该变量始终保持在内存中。 所有引用都超出范围时,CLR 将标记该变量以供垃圾回收。 如果类声明为静态类,则内存中只存在一个副本,并且客户端代码只能通过该类自身而不是“实例变量”访问该类。创建对象Customer object1 = new Customer();创建类的实例后,将向程序员传递回对该对象的引用。在前面的示例中 阅读全文

posted @ 2012-05-14 17:38 YeChun 阅读(231) 评论(0) 推荐(0) 编辑

9.C#编程指南-类和结构

摘要: 类和结构是.NET Framework中的常规类型系统的两种基本构造。两者在本质上都属于数据结构,封装着一组整体作为一个逻辑单位的数据和行为。数据和行为是该类或结构的“成员”,它们包含各自的方法、属性和事件等。类是一种“引用类型”。创建类的对象时,对象赋值到的变量只保存对该内存的引用。将对象引用赋给新变量时,新变量引用的是原始对象。通过一个变量做出的更改将反映到另一个变量中,因为两者引用同一数据。结构是一种“值类型”。创建结构时,结构赋值到的变量保存该结构的实际数据。将结构赋给新变量时,将复制该结构。因此,新变量和原始变量包含同一数据的两个不同的副本。对一个副本的更改不影响另一个副本。封装“封 阅读全文

posted @ 2012-05-14 11:09 YeChun 阅读(246) 评论(0) 推荐(0) 编辑

2012年5月3日

8.C#编程指南-索引器

摘要: 索引器允许类或结构的实例像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。View Code class SampleCollection<T>{ // Declare an array to store the data elements. private T[] arr = new T[100]; // Define the indexer, which will allow client code // to use [] notation on the class instance itself. // (See line 2 of ... 阅读全文

posted @ 2012-05-03 23:26 YeChun 阅读(1098) 评论(0) 推荐(0) 编辑

7.C#编程指南-枚举类型

摘要: 枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。 例如,假设您必须定义一个变量,该变量的值表示一周中的一天。 该变量只能存储七个有意义的值。 若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的。enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }; 默认情况下,枚举中每个元素的基础 阅读全文

posted @ 2012-05-03 17:31 YeChun 阅读(206) 评论(0) 推荐(0) 编辑

6.C#编程指南-接口

摘要: 接口描述的是可属于任何类或结构的一组相关功能。接口使用interface关键字进行定义,如下面的示例所示。interface IEquatable<T>{ bool Equals(T obj);}接口可由方法、属性、事件、索引器或这四类成员类型的任意组合构。接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型。它不能包含静态成员。接口成员是自动公开的,且不能包含任何访问修饰符。类或结构实现接口时,该类或结构将为该接口定义的所有成员提供实现。接口本身不提供类或结构能够以继承基类功能的方式继承的任何功能。但是,如果基类实现接口,派生类将继承该实现。派生的类被认为是隐式地实现接口 阅读全文

posted @ 2012-05-03 17:09 YeChun 阅读(202) 评论(0) 推荐(0) 编辑

C#关键字-运算符关键字-new

摘要: 在C#中,new关键字可用作运算符、修饰符或约束。new运算符:用于创建对象和调用构造函数。new修饰符:用于向基类成员隐藏继承成员。new约束:用于在泛型声明中约束可能用作类型参数的参数的类型。new运算符1.用于创建对象和调用构造函数。Class1 obj = new Class1();2.用于创建匿名类型的实例。var query = from cust in customers select new {Name = cust.Name, Address = cust.PrimaryAddress};3.用于调用值类型的默认构造函数。//i 初始化为 0,它是 in... 阅读全文

posted @ 2012-05-03 14:54 YeChun 阅读(1185) 评论(0) 推荐(0) 编辑

2012年4月15日

5.C#编程指南-属性

摘要: 属性是这样的成员:它提供灵活的机制来读取、编写或计算某个私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。在本示例中,TimePeriod类存储一个时间段。在内部,类以秒为单位存储时间,但客户端使用名为Hours的属性能够以小时为单位指定时间。Hours属性的访问器执行小时和秒之间的转换。View Code class TimePeriod{ private double seconds; public double Hours { get { return s... 阅读全文

posted @ 2012-04-15 22:32 YeChun 阅读(273) 评论(0) 推荐(0) 编辑

导航