浅谈C#基础之类的访问修饰符

浅谈C#基础之类的访问修饰符

C#中共有5种访问修饰符,分别为publicprivateprotectedinternalprotected internal。不同的访问修饰符可以在不同的范围内控制类、方法、属性、字段及其他成员的可访问性。

public访问修饰符

public访问修饰符用于指定一个类、方法、属性或字段可以从任何其他类(包括其他项目中的类)或方法中访问。具有此修饰符的任何成员均可以通过它们的类的实例访问。

以下是一个使用public访问修饰符的示例:

public class MyClass
{
    public int myPublicVar;
    public void myPublicFunction()
    {
        // Do something
    }
}

在上面的示例中,myPublicVarmyPublicFunction可以从任何其他类中访问。

private访问修饰符

private访问修饰符用于指定一个类、方法、属性或字段只能从其自身的类或结构中访问。其他类或结构中的任何尝试访问此修饰符下的成员都将引发编译错误。

以下是一个使用private访问修饰符的示例:

public class MyClass
{
    private int myPrivateVar;
    private void myPrivateFunction()
    {
        // Do something
    }
}

在上述示例中,myPrivateVarmyPrivateFunction只能在MyClass类中访问。

protected访问修饰符

protected访问修饰符用于指定一个类、方法、属性或字段可以从其自身的类或结构以及派生类中进行访问。其他类或结构中的尝试访问此修饰符下的成员都将引发编译错误。

以下是一个使用protected访问修饰符的示例:

public class MyClass
{
    protected int myProtectedVar;
    protected void myProtectedFunction()
    {
        // Do something
    }
}

在上述示例中,myProtectedVarmyProtectedFunction可以在MyClass类和其派生类中访问。

internal访问修饰符

internal访问修饰符用于指定一个类、方法、属性或字段只能在其自己的程序集中进行访问。程序集是一组相关的代码或DLL文件,如一个解决方案中的多个项目可以被组装为一个程序集。其他程序集中的类或结构中的任何尝试访问此修饰符下的成员都将引发编译错误。

以下是一个使用internal访问修饰符的示例:

internal class MyClass
{
    internal int myInternalVar;
    internal void myInternalFunction()
    {
        // Do something
    }
}

在上述示例中,MyClassmyInternalVarmyInternalFunction只能在同一程序集中的类中访问。

protected internal访问修饰符

protected internal访问修饰符用于指定一个类、方法、属性或字段可以从其自己的类或结构中、派生类以及同一程序集中的任何类中进行访问。

以下是一个使用protected internal访问修饰符的示例:

public class MyClass
{
    protected internal int myProtectedInternalVar;
    protected internal void myProtectedInternalFunction()
    {
        // Do something
    }
}

在上述示例中,myProtectedInternalVarmyProtectedInternalFunction可以在MyClass类中、其派生类中以及同一程序集中的任何类中进行访问。

这里再举一个protected internal的示例,假设有两个项目,一个名为MyProject1,另一个名为MyProject2,下面是在这两个项目中的使用示例:

在MyProject1中的一个类:

public class MyClass1
{
    protected internal void myFunction()
    {
        // Do something
    }
}

在MyProject2中的派生类:

public class MyClass2 : MyClass1
{
    public void AnotherFunction()
    {
        myFunction(); // 可以访问到MyClass1中的myFunction方法
    }
}

在MyProject2中的另一个类:

public class MyClass3
{
    MyClass1 myObj = new MyClass1();
    myObj.myFunction(); // 将无法访问到myFunction方法,因为MyClass3和MyClass1不在同一程序集中
}

以上就是对C#中5种访问修饰符的简要介绍,使用访问修饰符可以帮助我们更好的控制类、方法、属性或字段的可访问性,从而帮助我们编写更加健壮和安全的代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈C#基础之类的访问修饰符 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#逐行读取txt文件的方法

    当我们需要读取文本文件内容时,可以使用C#内置的System.IO命名空间中的StreamReader类。 以下是逐行读取txt文件并输出内容的代码示例: using System.IO; // 读取文件路径 string filePath = "example.txt"; // 判断文件是否存在 if (File.Exists(file…

    C# 2023年6月1日
    00
  • .NetCore利用BlockingCollection实现简易消息队列

    .NET Core利用BlockingCollection实现简易消息队列 在.NET Core应用程序中,我们可以使用BlockingCollection类来实现简易消息队列。本攻略将详细介绍如何使用BlockingCollection类来实现简易消息队列,并提供两个示例说明。 BlockingCollection类 BlockingCollection类…

    C# 2023年5月17日
    00
  • VsCode使用EmmyLua插件调试Unity工程Lua代码的详细步骤

    详细讲解“VsCode使用EmmyLua插件调试Unity工程Lua代码的详细步骤”的完整攻略如下: 1. 准备工作 首先,我们需要确保我们的环境中已经安装了以下软件:1. Visual Studio Code(简称VsCode)2. Unity3. Lua环境4. EmmyLua插件 2. 配置Unity 在Unity中,我们需要做以下配置:1. 打开Pl…

    C# 2023年5月15日
    00
  • C#面向对象之模拟实现商城购物功能

    C#面向对象模拟实现商城购物功能可以分为以下几个步骤: 1. 创建商品类(Product)及其属性 第一步我们需要创建一个商品类,用来保存商品的相关信息。在C#中,创建类非常简单,只需要使用class关键字即可,具体实现如下: class Product { // 商品名称 public string Name { get; set; } // 商品价格 p…

    C# 2023年5月31日
    00
  • 如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解

    下面是利用Jenkins+TFS为.NetCore实现持续集成/部署详解: 什么是Jenkins和TFS Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件系统,使软件的持续集成变成可能。TFS 是微软的一个应用生命周期管理 (ALM) 应用,它包括版本控制、工作项跟踪、项目管理以及构建与发布等功能。 配置TFS 为了在 Jenkins 中用 T…

    C# 2023年5月15日
    00
  • .Net Core 实现图片验证码的实现示例

    下面我会为您详细讲解如何实现“.Net Core 实现图片验证码的实现示例”。 一、需求分析 在实现图片验证码之前,我们需要分析一下实现的需求,常见需求包括:生成图片验证码,并将验证码存储到Session或数据库中,校验用户输入的验证码是否正确。在本例中,我们将采用生成图片验证码和校验用户输入的验证码是否正确这两个功能。 二、Bulid项目 我们首先需要创建…

    C# 2023年6月3日
    00
  • 磊科(Netcore)无线路由器的IP地址过滤实现方法

    磊科(Netcore)无线路由器的IP地址过滤实现方法 磊科(Netcore)无线路由器提供了IP地址过滤功能,可以限制特定IP地址的设备访问路由器。下面是实现IP地址过滤的步骤: 登录路由器管理页面 首先,我们需要登录路由器管理页面。在浏览器中输入路由器的IP地址,然后输入用户名和密码登录路由器管理页面。 进入IP地址过滤设置页面 在路由器管理页面中,找到…

    C# 2023年5月16日
    00
  • 一个可用于生产项目 基于 .NET 6 自研ORM

    Fast Framework 作者 Mr-zhong 代码改变世界…. 一、前言 Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer Oracle MySql PostgreSql Sqlite 优点: 体积小、可动态切换不同实现类库、原生支持微软特性、流畅API、使用简单、性能高、模型数据绑定…

    C# 2023年4月22日
    00
合作推广
合作推广
分享本页
返回顶部