zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    锋利的jQuery复制粘贴(一)
    使用photoshop以及markman进行快速重构页面的几个步骤
    线程间同步之 semaphore(信号量)
    关于C#中Thread.Join()的一点理解
    无废话WCF入门教程一[什么是WCF]
    Oracle function注释
    throw new DataException("检查服务器是否存在失败:" + ex);
    C# 将数据集以excel的形式输出
    .net 安装remoting服务
    任务计划 每日删除设定目录内的文件(包括文件夹)
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258738.html
Copyright © 2011-2022 走看看