欢迎光临散文网 会员登陆 & 注册

【回顾】C#从入门到精通第八章笔记

2021-03-19 00:02 作者:陪看书的小白  | 我要投稿

C#从入门到精通第八章笔记

属性和方法

1.属性的概念

属性是一种用于访问对象或类的特性的成员。属性可以包括字符串的长度、字体的大小、窗体的标题和客户的名称等。

属性是成员的自然扩展,两者都是关联类型的命名成员。

属性有访问器,这些访问器指定在它们的值被读取或写入时需要执行的语句。因此属性提供了一种机制,它把读取和写入对象的某些特性与一些操作关联起来。可以像使用公共数据成员一样使用属性,但实际上它们是称为“访问器”的特殊方法。这使得数据在可被轻松访问的同时,仍能提供方法的安全性和灵活性。

属性结合了字段和方法的多个方面。

对于对象的用户,属性显示为字段,访问该属性需要完全相同的语法。

对于类的实现者,属性是一个或两个代码块,表示一个get访问器和(或)一个set访问器。

当读取属性时,执行get访问器的代码块。

当向属性分配一个新值时,执行set访问器的代码块。

不具有set访问器的属性被视为只读属性,

不具有get访问器的属性被视为只写属性,

同时具有这两个访问器的属性为可读可写属性。

注意:

属性不能作为ref参数或out参数传递。

2.属性的使用

自定义属性在类模块内是通过以下方式声明的:

第一步,指定属性的访问级别,

第二步,指定后面的属性的类型,

第三步,接下来是属性的名称,

第四步,然后是声明get访问器和(或)set访问器的代码模块。

例如:

代码如下:

public class Date

{

private int day=7;

public int Day//星期属性,该属性为可读可写

{

get{return day;}

set

{

if((value>0)&&(value<8))

{

day=value;

}


}

}

}


说明:

get访问器与方法体相似,它必须返回属性类型的值;

而 set访问器类似于返回类型为void的方法,它使用称为value的隐式参数,此参数的类型是属性的类型。

3.方法的概念

方法是包含一系列语句的代码块。在C#中,每个执行指令都是在方法的上下文中完成的。

方法在类或结构中声明,声明时需要指定访问级别、返回值、方法名称及方法参数,方法参数放在括号中,并用逗号隔开。括号中没有内容表示声明的方法没有参数。

方法声明可以包含一组特性和private、public、protected、internal4个访问修饰符的任何一个有效组合,还可以包含new、static、virtual、override、sealed、abstract以及extern等修饰符。

如果以下所有条件都为真,则表明所声明的方法具有一个有效的修饰符组合。

①.该声明包含一个有效的访问修饰符组合。

②.该声明中所包含的修饰符彼此各不相同。

③.该声明最多包含下列修饰符中的一个:static、virtual和override。

④.该声明最多包含下列修饰符中的一个:new和override。

⑤.如果该声明包含abstract修饰符,则该声明不包含下列任何修饰符:static、virtual、sealed或extern。

⑥.如果该声明包含private修饰符,则该声明不包含下列任何修饰符:virtual、override或abstract。

⑦.如果该声明包含sealed修饰符,则该声明还包含override修饰符。

4.方法的分类

方法分为静态方法和非静态方法。

(1).若一个方法声明中含有static修饰符,则称该方法为静态方法。

(2).若没有static修饰符,则称该方法为非静态方法。

下面分别对静态方法和非静态方法进行介绍。

1.静态方法

静态方法代码如下:【使用类名调用静态方法】

public static int Add(int x,int y)/定义一个静态方法

{

return(x+y);

}

static void Main(string[]args)

{

Console.WriteLine(“结果为:“+Program.Add(3,5));

}


//使用类名调用静态方法


2.非静态方法

非静态方法是对类的某个给定的实例进行操作,而且可以用this来访问该方法。

代码如下:

public int Add(int x,int y)

{

return x+y;

}

static void Main(string[] args)

{

Program program=new Program();//实例化类对象

Console.WriteLine("结果为:"+program.Add(3,5));//使用类对象调用定义的非静态方法

}

说明:

调用非静态方法时,也可以使用this关键字。





第八章完!




【回顾】C#从入门到精通第八章笔记的评论 (共 条)

分享到微博请遵守国家法律