简述 C# 成员修饰符(Modifier)——从整体到细节全面解析

在 C# 语言中,成员修饰符(Modifier) 用于描述类型或成员的可访问性、实现方式、继承能力以及生命周期
无论是基础语法学习、工程开发,还是面试考察,成员修饰符都是必须掌握的核心知识点。


一、C# 成员修饰符整体分类

1. 行为修饰符(Behavior Modifiers)

修饰符说明
abstract成员无实现,必须由派生类实现
virtual成员可以在派生类中被重写
override对基类虚成员提供新的实现
static成员属于类型本身
const编译期常量
readonly运行期只读字段
extern成员在外部实现
event声明事件成员

2. 访问修饰符(Access Modifiers)

修饰符访问范围
public任意位置
private当前类或结构
protected当前类及派生类
internal同一程序集
protected internal同一程序集或派生类

二、行为修饰符详解

abstract —— 抽象成员

public abstract class Animal
{
    public abstract void Speak();
}

特点说明

  • 没有方法体
  • 抽象类不能实例化
  • 派生类必须实现
  • 不能与 private、static 同用

virtual —— 虚成员

public virtual void Print()
{
    Console.WriteLine("Base");
}
  • 提供默认实现
  • 子类可选择重写
  • 支持运行时多态

override —— 重写成员

public override void Print()
{
    Console.WriteLine("Derived");
}
  • 只能重写 virtual / abstract
  • 方法签名必须一致
  • 访问级别不能降低

static —— 静态成员

public static int Count;
  • 属于类型本身
  • 所有实例共享
  • 不能访问实例成员

const —— 常量

public const int MaxValue = 100;
  • 编译期确定
  • 隐式 static
  • 不可修改

readonly —— 只读字段

public readonly int Age;

public Person(int age)
{
    Age = age;
}
  • 运行期赋值
  • 只能在声明或构造函数中赋值

extern —— 外部实现

public extern void NativeMethod();
  • 实现位于外部
  • 常用于 P/Invoke

event —— 事件

public event EventHandler Clicked;
  • 基于委托
  • 发布-订阅模型

三、访问修饰符详解

public

  • 同一程序集
  • 其他程序集

接口成员、枚举成员默认 public。


private(默认)

  • 仅当前类或结构
  • 方法默认 private
  • 析构函数默认 private

protected

  • 当前类
  • 派生类

internal

  • 同一程序集
  • 类默认访问级别

protected internal

  • 同一程序集
  • 派生类

四、访问修饰符对比表

修饰符同类派生类同程序集跨程序集
private
protected
internal
protected internal
public

五、总结

  • 行为修饰符:决定“怎么实现、能否继承”
  • 访问修饰符:决定“谁能访问”
  • 默认规则是高频考点

会写代码是基础,用好修饰符是设计能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bugcome_com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值