如何限制派生类访问 c# 中基类的属性之一

本文关键字:基类 属性 何限制 派生 访问 | 更新日期: 2023-09-27 18:30:20

我有一个派生(比如B)类,我想在其中访问基类(Say A)的某些属性,但不是基类的所有属性。我在基类中有 5 个属性,比如姓名、年龄、名称、位置和薪水,我想在派生类中继承。但是,我想让所有属性都接受基类的"薪水"属性(派生类 B 不应访问工资属性。我将如何实现它

提前谢谢。

如何限制派生类访问 c# 中基类的属性之一

public class Employee
{
    public double Salary { get; private set; }
}

若:

  • 您希望每个人都可以读取该属性
  • 您不希望子类能够写入Salary

但是,如果您希望外部类写入Salary,而不是Employee的子类,那么这是不可能的。子类始终具有至少与外部类一样多的权限。

如果你不希望任何人能够读/写该属性(Employee类除外),那么就这样将其设为私有

public class Employee
{
    private double Salary { get; set; }
}

将此属性标记为私有:

class A
{
    protected string Name { get; set; }
    ...
    private string Salary { get; set; } // derived classes has no access now
}