C#访问修饰符

C#中的访问修饰符用于控制类型成员(如字段、属性、方法等)的访问级别。以下是C#中常用的访问修饰符:

  1. public :公共访问级别,没有任何访问限制。在任何其他类或程序集中都可以访问标记为 public 的成员。

  2. private:私有访问级别,只能在定义它们的类内部访问。这是默认访问级别,如果没有指定访问修饰符,则成员被认为是私有的。

  3. protected:受保护访问级别,允许在定义成员的类内部以及派生自该类的子类中访问。

  4. internal:内部访问级别,只能在相同程序集内部访问。对于程序集外部的代码来说,这些成员是不可见的。

  5. protected internal:受保护的内部访问级别,允许在同一程序集中的任何类或派生自该类的子类中访问。

  6. private protected:私有受保护访问级别,只允许在定义成员的类的同一程序集内的派生类中访问。

下面是包含这些访问修饰符的示例代码:

csharp 复制代码
using System;

public class MyClass
{
    public int PublicField;           // 公共字段
    private int PrivateField;         // 私有字段
    protected int ProtectedField;     // 受保护字段
    internal int InternalField;       // 内部字段
    protected internal int ProtectedInternalField; // 受保护的内部字段
    private protected int PrivateProtectedField;   // 私有受保护字段

    public void MyMethod()
    {
        // 这里可以访问所有上述字段
    }
}

public class DerivedClass : MyClass
{
    public void AnotherMethod()
    {
        // 这里可以访问 PublicField, ProtectedField, ProtectedInternalField 和 PrivateProtectedField
        // 无法访问 PrivateField 和 InternalField(除非这两个类在同一个程序集中)
    }
}

class Program
{
    static void Main()
    {
        MyClass myClass = new MyClass();

        // 可以访问 myClass.PublicField 和 myClass.InternalField
        // 无法访问 PrivateField, ProtectedField, ProtectedInternalField 和 PrivateProtectedField
    }
}

在这个示例中,MyClass 类中包含了各种访问修饰符的字段,以及一个公共方法 MyMethodDerivedClass 类继承自 MyClass,它可以访问部分但不是全部的字段。Program 类的 Main 方法展示了从类外部可以访问哪些字段。

相关推荐
时光追逐者9 小时前
C# 哈希查找算法实操
算法·c#·哈希算法
三千道应用题10 小时前
C#语言入门详解(18)传值、输出、引用、数组、具名、可选参数、扩展方法
开发语言·c#
micoos10 小时前
C#-LinqToObject-Element
c#
忧郁的蛋~10 小时前
使用.NET标准库实现多任务并行处理的详细过程
开发语言·c#·.net
索迪迈科技13 小时前
记一次 .NET 某中医药附属医院门诊系统 崩溃分析
windows·c#·.net·windbg
SunflowerCoder13 小时前
WPF迁移avalonia之触发器
c#·wpf·avalonia
长安——归故李17 小时前
【modbus学习】
java·c语言·c++·学习·算法·c#
小码编匠17 小时前
WPF 多线程更新UI的两种实用方案
后端·c#·.net
蜗牛~turbo18 小时前
金蝶云星空 调价表取历史价格
java·数据库·sql·c#·database
伽蓝_游戏20 小时前
UGUI源码剖析(15):Slider的运行时逻辑与编辑器实现
游戏·ui·unity·性能优化·c#·游戏引擎·.net