【C#】访问修饰符public、protected、private、internal的区别

public 公有访问,不受任何限制。

private 私有访问,只限于本类成员访问(子类、父类、实例都不能访问)。

protected 保护访问,只限于本类、子类、父类访问(实例不能访问)。

internal 内部访问,只限于本命名空间(程序集)内访问,其他命名空间(程序集)内不能访问,程序集就是命名空间。

protected internal 保护访问 和 内部访问的并集,符合任意一条都可以访问。

表格展示以上定义

本类子类实例
private 私有访问
protected 保护访问
public 公有访问
不同命名空间 namespace
internal 内部访问
public 公有访问

代码解释 protected 本类子类可访问

public class Country
{
    //一、本类成员访问protected类型
    //(protected后面加上static,是由于初始值设定必须是静态字段)
    protected static string _continent = "亚洲";
    public string continent { get; set; } = _continent;

    protected string _country = "中国";
}
public class Address: Country
{
	//二、子类访问父类的protected类型
    public string country => _country;    
}

 代码解释 private 本类可访问(两种写法)

public class Person
{
    //一、本类成员访问private类型
    //(其中 => 是简化的 get 访问器)
    private int _gender = 1;
    public string gender => _gender == 1 ? "Male" : "Female";
              
    //(其中包含get访问器,字段可读,用于较为复杂的计算属性)
    private int _age = 100;
    public string age
    {
        get
        {
            return $"{_age} years old";
        }
    }
}
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值