读书笔记_C#技术内幕_第七章(类的使用)

来源:互联网 发布:淘宝导购软件 编辑:程序博客网 时间:2024/05/18 00:50
 

类的构架:

class classname

{

       // constructors

       // destructors

       // fields

       // methods

       // properties

       // indexers

       // events

       // delegates

       // enumerations

       // classes

}

 

实例成员和静态成员:

实例成员是在创建类成员时就以独立的实体存在,具有自己的一组属性和行为的成员。

静态成员是在给定的时间内只允许存在一个拷贝的类的成员。

 

访问限制修饰符:

修饰符                         能够看到的成员

Private                         只有同一类的成员

Protected                     同一类的派生类的成员

Internal                 同一程序的成员

Protected internal   同一程序或派生类的成员

Public                          任何成员开放的访问限制

 

常量字段和只读字段:

只读(readonly)字段与常量(const)字段一样,初始化之后就不能够修改。两者之间最大区别是初始化时间不同:常量是编译时初始化而只读字段是运行时初始化。

 

析构函数:

classname(){}

使用析构函数来清除类的资源会增加资源耗尽、系统崩溃或死锁的危险。基本规则是:不要依靠析构函数来释放类所占用的关键资源。

 

方法的特征标记:

方法有与其他类成员完全不同的特征标记(signature)。基本格式如下:

[modifiers] returnType MethodName ([parameter list])

{

       [statements]

}

 

方法修饰符            含义/引用

abstract              只是方法特征标记,没有实现

extern                外部方法的方法特征标记

internal              程序可访问

new                   隐藏同一名称的基类方法

override              当虚基类方法通过基类引用调用时,在基类中同一方法的覆盖实现声明为虚拟的

private               只有同类可以访问

protected             只有同类或派生类可以访问

static                不属于类实例

virtual               允许派生类的方法定义为override,并且当这个方法通过对它包围的类的引用调用时才被调用

 

方法参数:

方法参数指定了从调用程序中作为参数接受的方法的变量的类型。方法参数列表中可以有零个或多个参数(视需要而定)。通常参数越少越好。有四种参数可以使用:值参数(value)、引用参数(reference)、输出参数(output)和参量参数(params)。

 

值参数:

       通常在参数声明中没有指定它的种类时,参数种类就默认为值参数。如果参数已经是一个引用,那么它的类型就是引用参数。当传递数组时,就默认为params。值参数提供了它们自己的局部拷贝给方法。这就是说方法可以更具需要读取和写入参数,但是从调用程序来的原始拷贝不变。

 

引用参数:

       可以把引用参数看作是in/out参数。在方法的主体内修改ref参数也会修改作为参数传递的原始变量。把ref参数传递到方法之前必须先对它们赋值。

 

输出参数:

从方法返回信息的另外一种方法是使用out(输出)参数。out参数不必预先进行赋值,但是在方法返回之前一定要赋值。即使一个变量在方法调用前确实已经赋值,但是一旦在方法调用内部仍然认为没有赋值。因此,在out变量的初始化前,在方法内要访问out变量都会导致一个编译错误。因为要求在离开方法之前赋值给参数,在进行方法调用完成前,可以放置任何数据到out对象。在方法执行时将用放进的数据代替该参数。

 

params参数:

       参量(params)参数可以把一维数组或不规则数组传递到方法,并且必须是方法参数列表中的最后一个参数。传递的参数可以是数组或能够转换成数组的值的列表。在不能预先了解有多少值将会传递时,params参数是传递多个值到方法的好办法。

 

索引器:

public class class1

{

       // class1 implementation

}

 

public class class2

{

    SortedList list;

    public class2()

{

    list = new SortedList();

}

 

public class1 this[int index]

{

    get

{

       //

}

set

{

       //

}

}

}

原创粉丝点击