C#深入理解类

一、成员修饰符顺序

类成员声明语句由:核心声明+一组可选的修饰符+一组可选的特性

【特性】【修饰符】TypeName FieldName;

二、实例字段和静态字段

  1. 声明格式:

  • 实例字段:TypeName FieldName;静态字段:static TypeName FieldName;

  1. 作用范围:

  • 实例字段:类的每个实例独享一份;静态字段:类的所有实例共享一份。

  1. 调用方式:

  • 实例字段:外部访问使用对象名;静态字段:外部访问使用类名。

  1. 生命周期:

  • 实例字段跟随类的实例的创建与销毁;静态成员即使没有类的实例也存在。

  1. 实例方法和静态方法访问:

  • 实例方法可以访问静态字段;静态方法不能访问实例字段;

三、静态成员类型

可以声明为静态成员类型的成员使用✔️做了标记。

四、成员常量

成员常量是在类中方法外。(本地常量声明在方法中)。

  • 使用const关键字

  • 必须初始化,用于初始化成员常量的值在编译时必须是可计算的

  • 成员常量初始化后不允许修改

  • 成员常量表现像静态值,但没有实际的存储位置。成员常量对类的每个实例都是可见的,且即使没有类的实例也可使用

五、构造函数

  1. 实例构造函数

  1. 实例构造函数在创建每个类的新实例时执行。

  • 构造函数名称和类名相同

  • 构造函数不能有返回值

  • 构造函数用于初始化实例的状态

  1. 创建类的实例,使用new关键字+构造函数

  1. 带参数的构造函数

  1. 构造函数可以带参数。参数的语法和其他方法完全相同。

  1. 构造函数可以被重载。

  1. 默认构造函数

如果在类的声明中没有显式地提供实例构造函数,那么编译器会提供一个隐式的默认构造函数。

  • 默认构造函数没有参数

  • 方法体为空

  1. 静态构造函数

  1. 静态构造函数在创建任何类的实例,和引用任何静态成员之前,初始化类级别的项。

  1. 静态构造函数和实例构造函数的区别

  • 静态构造函数声明中使用static关键字

  • 类只能有一个静态构造函数,且不能带参数

  • 静态构造函数不能有访问修饰符

  • 不能从程序中显式调用静态构造函数,系统会自动调用

  1. 析构函数

执行在类的实例被销毁之前需要的清理或非托管资源的行为。

  1. readonly修饰符

字段可以用readonly修饰符声明,其作用类似于将字段声明为const,一旦值被设定就不能改变。

  • const只能在字段的声明语句中初始化,而readonly可以在下列任意位置设置它的值:

  • 字段声明语句

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

  • const的值必须在编译时决定,而readonly的值可以在运行时决定,更加灵活

  • const的行为总是静态的,而readonly字段以下两点是正确的

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

  • 它在内存中有存储位置

(注:本章学习总结自《C#图解教程》)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值