C#可访问级别Public,private,protected,internal

 更新时间:2024年04月01日 15:11:27   作者:搬砖的诗人Z  
本文主要介绍了C#可访问级别Public,private,protected,internal,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

在C#中,可访问级别(access modifiers)用于控制类、字段、方法和属性等成员的可访问性。C#提供了几种可访问级别,它们决定了哪些代码可以访问特定成员。

以下是C#中最常见的可访问级别:

  • public:公共访问级别允许成员在程序的任何地方访问。
  • private:私有访问级别限制成员只能在定义它们的类或结构体内部访问。
  • protected:受保护的访问级别允许成员在定义它们的类或结构体以及派生类中访问。
  • internal:内部访问级别允许成员在同一程序集中的任何位置访问。
  • protected internal:受保护的内部访问级别允许成员在同一程序集中的任何位置以及派生类中访问。

示例代码:

using System;

public class Example
{
    public int publicField; // 公共字段

    private int privateField; // 私有字段

    protected int protectedField; // 受保护字段

    internal int internalField; // 内部字段

    protected internal int protectedInternalField; // 受保护的内部字段

    // 公共方法
    public void PublicMethod()
    {
        Console.WriteLine("This is a public method.");
    }

    // 私有方法
    private void PrivateMethod()
    {
        Console.WriteLine("This is a private method.");
    }

    // 受保护方法
    protected void ProtectedMethod()
    {
        Console.WriteLine("This is a protected method.");
    }

    // 内部方法
    internal void InternalMethod()
    {
        Console.WriteLine("This is an internal method.");
    }

    // 受保护的内部方法
    protected internal void ProtectedInternalMethod()
    {
        Console.WriteLine("This is a protected internal method.");
    }
}

public class Derived : Example
{
    public void AccessProtectedField()
    {
        // 在派生类中可以访问受保护字段
        protectedField = 10;
        Console.WriteLine("Accessing protected field from derived class: " + protectedField);
    }
}

class Program
{
    static void Main(string[] args)
    {
        Example example = new Example();
        example.publicField = 5; // 可以访问公共字段
        Console.WriteLine("Accessing public field: " + example.publicField);

        // 无法访问私有字段
        // example.privateField = 10; // 编译错误

        // 无法访问受保护字段
        // example.protectedField = 15; // 编译错误

        example.internalField = 20; // 可以访问内部字段
        Console.WriteLine("Accessing internal field: " + example.internalField);

        example.protectedInternalField = 25; // 可以访问受保护的内部字段
        Console.WriteLine("Accessing protected internal field: " + example.protectedInternalField);

        example.PublicMethod(); // 可以调用公共方法
        // 无法调用私有方法
        // example.PrivateMethod(); // 编译错误

        // 无法调用受保护方法
        // example.ProtectedMethod(); // 编译错误

        example.InternalMethod(); // 可以调用内部方法

        example.ProtectedInternalMethod(); // 可以调用受保护的内部方法

        Derived derived = new Derived();
        derived.AccessProtectedField(); // 可以在派生类中访问受保护字段
    }
}

到此这篇关于C#可访问级别Public,private,protected,internal的文章就介绍到这了,更多相关C#可访问级别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 深入理解C#中的枚举

    深入理解C#中的枚举

    本篇文章主要是对C#中的枚举进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#学习笔记之适配器模式详解

    C#学习笔记之适配器模式详解

    这篇文章主要为大家详细介绍了C#学习笔记之适配器模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • c# 遍历 Dictionary的四种方式

    c# 遍历 Dictionary的四种方式

    这篇文章主要介绍了c# 遍历 Dictionary的四种方式,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-09-09
  • C#调用python.exe使用arcpy方式

    C#调用python.exe使用arcpy方式

    这篇文章主要介绍了C#调用python.exe使用arcpy方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Unity UGUI的ToggleGroup选项组件介绍使用

    Unity UGUI的ToggleGroup选项组件介绍使用

    这篇文章主要为大家介绍了Unity UGUI的ToggleGroup选项组件介绍使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • C#泛型用法实例分析

    C#泛型用法实例分析

    这篇文章主要介绍了C#泛型用法,实例分析了C#泛型的功能、定义与使用技巧,需要的朋友可以参考下
    2015-06-06
  • C#简单实现显示中文格式星期几的方法

    C#简单实现显示中文格式星期几的方法

    这篇文章主要介绍了C#简单实现显示中文格式星期几的方法,涉及C#常见的日期与时间以及字符串转换等相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • 基于C#设计一个双色球选号工具

    基于C#设计一个双色球选号工具

    这篇文章主要为大家详细介绍了如何利用C#设计实现一个双色球选号工具,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • C#实现根据数字序号输出星期几的简单实例

    C#实现根据数字序号输出星期几的简单实例

    这篇文章主要介绍了C#实现根据数字序号输出星期几的简单实例,代码简洁实用,也有助于初学者更好的理解C#的switch和if语句的流程控制,需要的朋友可以参考下
    2014-07-07
  • 深入C#中使用SqlDbType.Xml类型参数的使用详解

    深入C#中使用SqlDbType.Xml类型参数的使用详解

    本篇文章是对在C#中使用SqlDbType.Xml类型参数的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论