什么是访问修饰符?
所有类型和类型成员都具有可访问性级别。 该级别可以控制是否可以从你的程序集或其他程序集中的其他代码中使用它们。 程序集是通过在单个编译中编译一个或多个 .cs 文件而创建的 .dll 或 .exe。—官方介绍
简单来说你定义一个类(Class),你可以给这个类设置访问权限,来规定哪些可以访问哪些不可以访问。如果还听不懂那么我们举例说明:我自己花钱盖了一个图书馆,因为是我建造的,我有权力规定都谁可以使用。(图书馆相当于你定义的一个类)
- public:说我热爱公益,大公无私不管是谁,都可以来我建造的图书馆看书、学习。没有限制谁都可以来;
- private:说这个图书馆就是留着我自己一个人看的,除了我不管是谁都不可以用。限制了除了我任何人不准使用,私人私有的;
- protected:说我建造的图书馆是为了给我的家人用的,我的孩子们都可以使用。只有是继承我的可以使用,相当C#派生类。
- internal:说我建个图书馆,但是这个图书馆建在我们小区,只有我们小区的人可以使用,不管有没有关系。如果其他小区一律不可以使用。小区相当于一个程序集。
实际使用方法
public class School
{
public void StudentCount() { }
}
public class BaseClass
{
private protected int myValue = 0;
}
public class DerivedClass1 : BaseClass
{
void Access()
{
var baseObject = new BaseClass();
// Error CS1540, because myValue can only be accessed by
// classes derived from BaseClass.
// baseObject.myValue = 5;
// OK, accessed through the current derived class instance
myValue = 5;
}
}
官方图表解释