首页 > 其他 > 详细

C#图解教程读书笔记(第6章 类进阶)

时间:2014-03-31 08:43:23      阅读:557      评论:0      收藏:0      [点我收藏+]

类成员声明语句由下列部分组成:核心声明、一组可选的修饰符和一组可选的特性(attribute)。

[特性] [修饰符] 核心声明

修饰符:

如果有修饰符,必须放在核心声明之前。

如果有多个修饰符,要有序放置

特性

如果有特性,必须放在修饰符和核心声明之前

如果有多个特性,可以任何顺序

修饰符:public,private,static,const

 

实例类成员

public int Mem1;

静态字段

static int Mem2;被所有的实例可见,并且如果一个实例改变该值,其它实例使用的该值也会变化。

bubuko.com,布布扣

 

静态成员可以不用实例化,直接使用。

静态函数成员

Static public void PrintValA();

成员常量

Const int IntVal = 100;// 定义int类型常量,值为100

属性

属性是代表类的实例或类中的一个数据项的成员。

privateint theRealValue;

publicint TheRealValue

{

get { return theRealValue; }

set { theRealValue = value; }

}

但是使用属性的话,不能直接用get和set,而是直接使用赋值的方式。

构造函数

如果需要外部调用,需要声明为public

和类名相同,但是没有返回类型。

析构函数

每个类只能有一个析构函数

析构函数不能带参数

析构函数不能带访问修饰符

析构函数和类有相同的名称,但以一个"~"字符作前缀

析构函数只对类的实例起作用,因为没有静态析构函数。

不能在代码中显式地调用析构函数。

标准的清理模式

classFuncTest:IDisposable

{

bool disposed = false;

publicvoid Dispose()

{

Dispose(true);

GC.SuppressFinalize(this);

}

~FuncTest()

{

Dispose(false);

}

protectedvirtualvoid Dispose(bool disposing)

{

if (disposed == false)

{

if (disposing == true)

{

// Dispose the managed resources

}

// Dispose the unmanaged resources

}

disposed = true;

}

}

readonly修饰符

和const不同,即可以直接初始化,也可以在构造函数中设置它的值。

但是,如果是static字段,初始化必需在static构造函数中完成。

this关键字

this关键字在类中使用,是对当前实例的引用。

索引

和属性一样,索引不分配内存为存储

索引和属性都主要被用来访问其它数据成员这些成员和它们关联,它们为这些成员提供设置和获取访问。

和属性一样,索引可以只有一个访问器,也可以两个都有。

索引总是实例成员,因此,索引不能声明为static。

和属性一样,实现get和set访问器的代码不必一定要关联到某个字段或属性。这段代码可以做任何事情或什么也不做,只要get访问器返回某个指定类型的值即可。

classEmployee

{

publicstring LastName;

publicstring Firstname;

publicstring CityOfBirth;

publicstringthis[int index]

{

set

{

switch (index)

{

case 0: LastName = value;

break;

case 1: Firstname = value;

break;

case 2: CityOfBirth = value;

break;

default:

thrownewArgumentOutOfRangeException("index");

}

}

get

{

switch (index)

{

case 0: return LastName;

case 1: return Firstname;

case 2: return CityOfBirth;

default:

thrownewArgumentOutOfRangeException("index");

}

}

}

}

当一个类中,有多个string和多个int想同时定义索引时,可以将索引定义为多个参数。

分部类和分部类型

用partial class的形式,声明分部类

partialclassMyClass

{

partialvoid PrintSum(int x, int y);

publicvoid Add(int x, int y)

{

PrintSum(x, y);

}

}

 

partialclassMyClass

{

partialvoid PrintSum(int x, int y)

{

Console.WriteLine("Sum is {0}", x + y);

}

}

 

var mc = newMyClass();

mc.Add(5, 6);

C#图解教程读书笔记(第6章 类进阶),布布扣,bubuko.com

C#图解教程读书笔记(第6章 类进阶)

原文:http://www.cnblogs.com/pengjia89/p/3634934.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!