C# 基础

本文详细介绍了 C# 中的各种访问修饰符,包括 public、protected、internal 等,以及它们如何影响类成员的可见性和可访问性。同时探讨了 abstract、async 和 const 的用法,并解释了 readonly 与 const 的区别。
摘要由CSDN通过智能技术生成


public :访问不受限制。

protected :访问仅限于包含类或从包含类派生的类型。

Internal :访问仅限于当前程序集。

protected internal:访问限制到当前程序集或从包含派生的类型的类别。

private :访问仅限于包含类型。



abstract:抽象类不能实例化

抽象类可以包含抽象方法和抽象访问器

不能用 sealed(C# 参考) 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。

采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承

从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现

方法:抽象方法是隐式的虚方法

只允许在抽象类中使用抽象方法声明  

因为抽象方法声明不提供实际的实现,所以没有方法体;

方法声明只是以一个分号结束,并且在签名后没有大括号 ({ })

属性:在静态属性上使用 abstract 修饰符是错误的

在派生类中,通过包括使用 override 修饰符的属性声明,可以重写抽象的继承属性

抽象类必须为所有接口成员提供实现

实现接口的抽象类可以将接口方法映射到抽象方法上



async:将方法、lambda 表达式或匿名方法指定为异步

不包含 await 表达式或语句,则该方法将同步执行



 const :指定字段或局部变量的值是常数,不能被修改

常数表达式是在编译时可被完全计算的表达式

只能是 string 和 null

不允许在常数声明中使用 static 修饰符

常数可以参与常数表达式


const 字段只能在该字段的声明中初始化

  readonly 字段可以在声明或构造函数中初始化

const 字段只能在该字段的声明中初始化

readonly 字段可以在声明或构造函数中初始化

const 字段是编译时常数

readonly 字段可用于运行时常数

const 默认就是静态的

readonly 如果设置成静态的就必须显示声明

const 对于引用类型的常数,可能的值只能是 string 和 null

readonly可以是任何类型



event:用于在发行者类中声明事件

static:即使类没有实例,调用方也能在任何时候使用该事件

virtual:允许派生类通过使用 override 关键字来重写事件行为

sealed:指定对于派生类它不再属虚拟性质

abstract:编译器不会生成 add 和 remove 事件访问器块,因此派生类必须提供自己的实现


extern:用于声明在外部实现的方法

extern 关键字还可以定义外部程序集别名,使得可以从单个程序集中引用同一组件的不同版本


in :指定该类型参数是逆变的

可以在泛型接口和委托中使用 in 关键字










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值