zoukankan      html  css  js  c++  java
  • 可访问级别(转)

    可访问性级别(C# 参考)

    http://msdn.microsoft.com/zh-cn/library/ba0a1yw2(v=VS.80).aspx

    使用访问修饰符 public、protected、internal 或 private 可以为成员指定以下声明的可访问性之一。

    声明的可访问性

    含义

    public

    访问不受限制。

    protected

    访问仅限于包含类或从包含类派生的类型。

    internal

    访问仅限于当前程序集。

    protected internal

    访问仅限于从包含类派生的当前程序集或类型。

    private

    访问仅限于包含类型。

    一个成员或类型只能有一个访问修饰符,使用 protected internal 组合时除外。

    命名空间上不允许使用访问修饰符。命名空间没有访问限制。

    根据发生成员声明的上下文,只允许某些声明的可访问性。如果在成员声明中未指定访问修饰符,则使用默认的可访问性。

    不嵌套在其他类型中的顶级类型的可访问性只能是 internalpublic。这些类型的默认可访问性是 internal

    嵌套类型是其他类型的成员,它们可以具有下表所示的声明的可访问性。

    属于

    默认的成员可访问性

    该成员允许的声明的可访问性

    enum

    public

    class

    private

    public、protected、internal、private、protected internal

    interface

    public

    struct

    private

    public、internal、private

    嵌套类型的可访问性取决于它的可访问域,该域是由已声明的成员可访问性和直接包含类型的可访问域这二者共同确定的。但是,嵌套类型的可访问域不能超出包含它的类型的可访问域。

    Private

    private 关键字是一个成员访问修饰符。
    http://msdn.microsoft.com/zh-cn/library/st6sy9xe(v=VS.80).aspx

    私有访问是允许的最低访问级别,私有成员只有在声明它们的类和结构体中才是可访问的。

    如下例所示:

    class Employee
    {
        private int i;
        double d;   // private access by default
    }

    同一体中的嵌套类型也可以访问那些私有成员。

    在定义私有成员的类或结构外引用它会导致编译时错误。

    Protected

    protected 关键字是一个成员访问修饰符。
    http://msdn.microsoft.com/zh-cn/library/bcd5672a(v=VS.80).aspx

    受保护成员在它的类中可访问并且可由派生类访问,仅当访问通过派生类类型发生时,基类的受保护成员在派生类中才是可访问的。

    例如,请看以下代码段:

    // protected_keyword.cs
    using System;
    class A
    {
        protected int x = 123;
    }
    
    class B : A
    {
        static void Main() // 在继承类方法中使用父类的protected成员
        {
            A a = new A();
            B b = new B();
    
            // Error CS1540, because x can only be accessed by
            // classes derived from A.
            // a.x = 10; 
            
            // OK, because this class derives from A.
            b.x = 10;   
        }
    }

    语句 a.x =10 将生成错误,因为 A 不是从 B 派生的。

    结构成员无法受保护,因为无法继承结构。

    Internal

    internal 关键字是类型和类型成员的访问修饰符。

    只有在同一程序集的文件中,内部类型或成员才是可访问的。

    如下例所示:

    public class BaseClass 
    {
        // Only accessible within the same assembly
        internal static int x = 0;
    }

    有关 internal 与其他访问修饰符的比较,请参见可访问性级别和访问修饰符(C# 编程指南)。

  • 相关阅读:
    gridview把textbox的值修改还是旧值的解决方法
    [转载]FMS Dev Guide学习笔记(验证客户端二)
    推荐几个Adobe Flex Builder 3的插件(代码格式化和fms服务器通讯文件(main.asc)编写)
    淘宝装修新旺铺如何让店招导航栏透明?
    淘宝店面怎么装修(不花分毫,玩转淘宝)
    教你处理明暗不匀的宝贝照片
    淘宝店铺装修 免费扶植版教程
    淘宝店铺(宝贝描述模板)克隆攻略
    如何用淘宝助理上传宝贝装修模板
    淘宝商城推广方案书
  • 原文地址:https://www.cnblogs.com/axyz/p/1880519.html
Copyright © 2011-2022 走看看