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


  • 相关阅读:
    没有服务商如何购买ERP的序列号?
    智能ERP主副机设置
    银盒子·序列号购买(2018-12-05)
    简易付微信收款提示支付失败
    简易付无法登录的解决方案
    Orchard详解--第八篇 拓展模块及引用的预处理
    Orchard详解--第七篇 拓展模块(译)
    Orchard详解--第六篇 CacheManager 2
    Orchard详解--第五篇 CacheManager
    Orchard详解--第四篇 缓存介绍
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258738.html
Copyright © 2011-2022 走看看