C#中类的访问级别
class Program { public class A { private int a1; public int b1; internal int c1; protected int d1; } private class A1 { private int a1; public int b1; internal int c1; protected int d1; } internal class A3 { private int a1; public int b1; internal int c1; protected int d1; } protected class A4 { private int a1; public int b1; internal int c1; protected int d1; } static void Main(string[] args) { A4 n=new A4();
此时对于对象只能访问类中的public和internal修饰的成员。类成员的修饰类型目的就是针对外部对象对自身的访问。 } }
</pre><pre name="code" class="html"> internal class A3 { private int a1; public int b1; internal int c1; protected int d1; public void GetWorld(A1 m) { Console.WriteLine("成员:"+m.b1); //用别的类对象作为参数,就相当于在外部访问类中的成员,只能访问public和internal类型
} }
当本类(任何类型的类public、private的无关)类型的时候,类的对象能访问本类和父类中的public和internal类型成员,private和protected的无法访问;
类的对象访问只能访问类成员中的public和internal的变量,起到的就是保护作用,但是对于类内部的成员函数,它可以使用类中的任何成员,比如:
internal class A2:A1 //A1类型不影响
{
private int a21;
public int b21;
internal int c21;
protected int d21;
public void GetWorld(A2 m)
{
Console.WriteLine("成员:" + m); //m就可以访问本类中的任何成员以及A1中出private类型外的成员,继承不了private,所以不能访问
} //本质上还是类中的成员可以访问类中的任何成员变量
public void GetWorld(A1 m)
{
Console.WriteLine("成员:" + m); //m就可以访问A1类中的public、internal成员,即使继承了A1,也只能访问public和internal类型
}
}
只要类对象的使用在类声明的外部,那么对象只能访问类中的public和internal成员,其它的一概不能访问。private只能类自己访问,prote