分享C#语言中的修饰符集锦(C#语言修饰符全解析:实用集锦分享)
原创
一、概述
C# 是一种面向对象的编程语言,它提供了充裕的修饰符来控制类的成员、方法、属性等的访问级别和行为。本文将详细介绍 C# 中常用的修饰符,并给出示例,帮助开发者更好地明白和使用这些修饰符。
二、访问修饰符
访问修饰符用于控制类成员的访问级别,有以下几种:
1. public
public 修饰符允许类成员在任意地方被访问。
public class MyClass {
public int MyField; // 公共字段
public void MyMethod() { // 公共方法
// ...
}
}
2. private
private 修饰符使类成员只能在定义它们的类内部被访问。
public class MyClass {
private int MyField; // 私有字段
private void MyMethod() { // 私有方法
// ...
}
}
3. protected
protected 修饰符允许类成员在定义它们的类及其派生类中被访问。
public class BaseClass {
protected int MyField; // 受保护字段
protected void MyMethod() { // 受保护方法
// ...
}
}
public class DerivedClass : BaseClass {
public void AccessProtected() {
MyField = 10; // 访问受保护字段
MyMethod(); // 访问受保护方法
}
}
4. internal
internal 修饰符使类成员只能在同一个程序集内部被访问。
internal class MyClass {
internal int MyField; // 内部字段
internal void MyMethod() { // 内部方法
// ...
}
}
5. protected internal
protected internal 修饰符使类成员在同一个程序集内部以及派生类中被访问。
public class BaseClass {
protected internal int MyField; // 受保护内部字段
protected internal void MyMethod() { // 受保护内部方法
// ...
}
}
public class DerivedClass : BaseClass {
public void AccessProtectedInternal() {
MyField = 10; // 访问受保护内部字段
MyMethod(); // 访问受保护内部方法
}
}
三、方法修饰符
方法修饰符用于指定方法的特殊行为,以下是一些常用的方法修饰符:
1. static
static 修饰符用于声明静态成员,静态成员属于类本身,而不是类的实例。
public static class MathHelper {
public static int Add(int a, int b) {
return a + b;
}
}
// 调用静态方法
int result = MathHelper.Add(10, 20);
2. virtual
virtual 修饰符用于声明基类中的方法,可以在派生类中被重写。
public class BaseClass {
public virtual void MyMethod() {
Console.WriteLine("BaseClass method");
}
}
public class DerivedClass : BaseClass {
public override void MyMethod() {
Console.WriteLine("DerivedClass method");
}
}
3. override
override 修饰符用于在派生类中重写基类的方法。
public class BaseClass {
public virtual void MyMethod() {
Console.WriteLine("BaseClass method");
}
}
public class DerivedClass : BaseClass {
public override void MyMethod() {
Console.WriteLine("DerivedClass method");
}
}
4. abstract
abstract 修饰符用于声明抽象类或抽象方法,抽象类不能被实例化,抽象方法必须在派生类中被实现。
public abstract class BaseClass {
public abstract void MyMethod();
}
public class DerivedClass : BaseClass {
public override void MyMethod() {
Console.WriteLine("DerivedClass method");
}
}
5. sealed
sealed 修饰符用于防止派生类重写基类的方法或属性。
public class BaseClass {
public virtual void MyMethod() {
Console.WriteLine("BaseClass method");
}
}
public sealed class DerivedClass : BaseClass {
public override void MyMethod() {
Console.WriteLine("DerivedClass method");
}
}
四、属性修饰符
属性修饰符用于控制属性的访问级别和行为,以下是一些常用的属性修饰符:
1. readonly
readonly 修饰符用于声明只能在构造函数中赋值的字段。
public class MyClass {
public readonly int MyField;
public MyClass(int value) {
MyField = value;
}
}
2. const
const 修饰符用于声明常量,其值在编译时已经确定。
public class MyClass {
public const int MyConstant = 10;
}
3. volatile
volatile 修饰符用于声明字段,该字段的值也许会在程序的控制之外被改变。
public class MyClass {
public volatile int MyField;
}
五、其他修饰符
除了以上提到的修饰符,C# 还提供了其他一些修饰符,以下是一些常用的:
1. new
new 修饰符用于隐藏基类中的成员。
public class BaseClass {
public void MyMethod() {
Console.WriteLine("BaseClass method");
}
}
public class DerivedClass : BaseClass {
public new void MyMethod() {
Console.WriteLine("DerivedClass method");
}
}
2. unsafe
unsafe 修饰符用于声明不可靠代码,该代码可以直接操作内存。
unsafe class MyClass {
public int* MyPointer;
}
3. fixed
fixed 修饰符用于固定内存地址,用于指针操作。
public class MyClass {
public fixed int MyArray[10];
}
六、总结
C# 语言中的修饰符提供了充裕的功能,可以帮助开发者更好地控制类成员的访问级别、方法和属性的特性行为。通过合理使用这些修饰符,可以编写出结构清晰可见、易于维护的代码。愿望本文对您有所帮助。