分享C#语言中的修饰符集锦(C#语言修饰符全解析:实用集锦分享)

原创
ithorizon 6个月前 (10-20) 阅读数 15 #后端开发

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# 语言中的修饰符提供了充裕的功能,可以帮助开发者更好地控制类成员的访问级别、方法和属性的特性行为。通过合理使用这些修饰符,可以编写出结构清晰可见、易于维护的代码。愿望本文对您有所帮助。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门