当前位置:首页 > Windows程序 > 正文

[C#基础] 类

2021-03-25 Windows程序

字段和方法是最重要的类成员类型,字段是数据成员,方法是函数成员

字段

字段是隶属于类的变量

它可以是任何类型,无论是预定义类型还是用户定义类型

和所有变量一样,字段用来保存数据

它们可以被写入

它们可以被读取

方法

方法是具有名称的可执行代码块

声明方法最简单语法如下

返回类型,如果一个方法不返回值,那么返回类型被指定为void

名称

参数列表

方法体

创建变量和类的实例

类是引用类型

数据的引用保存在类类型的变量中

常量与静态量

虽然常量成员变现的像一个静态量,但不能将常量声明为static

属性

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

与字段类似,属性有如下特征

它是命名的类成员

它有类型

它可以被赋值和读取

然而和字段不同,属性是一个函数成员

它不为数据存储分配内存

它执行代码

属性声明和访问器

set访问器总是

拥有一个单独的,隐式的值参,名称为value,与属性类型相同

拥有一个返回类型void

get访问器总是

没有参数

拥有一个与属性类型相同的返回类型

执行其他计算

属性访问器不不局限于仅仅对关联的后备字段传进传出参数,访问器能进行任何计算,或不执行任何计算,唯一必须的行为是get访问器要返回一个属性类型的值

下面的代码,set访问器在设置关联字段之前实现过滤,如果输入大于100,就设为100

int _x = 10; int X { get { return _x;} set { _x = value > 100 ? 100 : value; } }

View Code

只读和只写属性

只有get访问器的属性称为只读属性

只有set访问器的属性称为只写属性

两个访问器中至少要定义一个,否则编译器会产生一条错误消息

计算只读属性示例

下列代码展示了只读属性

int _x = 3; int _y = 4; int Z//只读属性 { get { return (_x+_y);} }

View Code

Z的值只能基于_x和_y的值产生

自动实现的属性

自动实现的属性要点如下

不声明后备字段

不能提供访问器的方法体

除非通过访问器,否则不能访问后备字段

静态属性

属性也可以声明为static。静态属性的访问器和所有静态一员,具有以下特点

不能访问类的实例成员,虽然他们能被实例成员访问

不管类是否存在,他们都是存在的

当从类的外部访问时,必须使用类名访问,而不是实例名

readonly修饰符

字段可以用readonly修饰,其作用类型于字段声明为const,一但值被设定就不能改变

const字段只能在字段的声明中进行初始化,而readonly字段可以在下列任意位置初始化

字段声明语句,类型const

类的任何构造函数,如果是static字段,初始化必须在静态构造函数中完成

const字段的值必须在编译时决定,而readonly的值可以在运行时决定

和const不同,const的行为总是静态的,而readonly的以下两点是正确的

它可以是实例字段,,也可以是静态字段

它在内存中有存储位置

this关键字

this关键字在类中使用,是对当前实例的引用。它只能被用在下列类成员的代码块中

实例构造函数

实例方法

属性和索引器的实例访问器

this用于下列目的

用于区分类的成员和本地变量的参数

作为调用方法的实参

索引器 什么是索引器

索引器是一组get和set的访问器,与属性类似。

下图展示了一个类的索引器的表现形式,该类可以获取和设置string型值

索引器和属性

索引器和属性很多方面是相似的。

和属性一样,索引器不用分配内存来存储

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

属性通常表示单独的数据成员

索引器通常表示多个数据成员

关于索引器,还有一些注意事项

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

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67198.html