• 《CLR via C#》读书笔记 之 类型和成员基础 明


    第六章 类型和成员基础

    2013-02-27

    6.2 类型的可见性
    6.3 成员的可访问性
    6.6 组件、多态和版本控制

    6.2 类型的可见性


    返回

    类有两种可见性:

    (1)       public,对所有程序集中的代码可见。

    (2)       internal,仅对定义它的程序集中的代码可见,对其它程序集中的代码不可见。

    :如果没有显式声明类的可见性,C#编译器默认设置为internal。

    6.3 成员的可访问性


    返回 

    表1 成员的可访问性

    CLR术语

    C#术语

    描    述

    Private

    private

    成员只能由定义该成员的类型中的方法或者该类型的所有嵌套类型中的方法访问

    Family

    protected

    成员只能由定义该成员的类型中的方法、该类型的所有嵌套类型中的方法或者该类型的一个派生类型(与程序集无关)的方法访问

    Family和

    (不支持)

    成员只能由定义该成员的类型中的方法、该类型的所有嵌套类型中的方法或者同一程序集中定义的该类型的所有派生类型中的方法访问

    Assembly

    Assembly

    internal

    成员只能由定义该成员的程序集中的方法访问

    Family或

    protected internal

    成员可以由定义该成员的类型的所有嵌套类型、所有派生类型(与程序集无关)的方法或者定义该成员的程序集中的所有方法访问

    Assembly

    Public

    public

    成员可以由所有程序集的所有方法访问

    6.6 组件、多态和版本控制


    返回 

    表2 C#关键字及其对组件版本控制的影响

    C#关键字

    类  型

    方法/属性/事件

    常量/字段

    abstract

    表示该类型不能构建实例

    表示在构建派生类型的实例之前派生类型必须重写并实现这个成员

    (不允许)

    virtual

    (不允许)

    表示这个成员可以由派生类型重写

    (不允许)

    override

    (不允许)

    表示派生类型重写了基础类型的成员

    (不允许)

    sealed

    表示该类型不能用作基础类型

    表示这个成员不能被派生类型重写,该关键字仅用于重写了虚方法的方法

    (不允许)

    new

    应用于嵌套类型、方法、属性、事件、常量或者字段时,表示该成员与基类中类似的成员没有关系

  • 相关阅读:
    webpack 模块化 原理
    nodejs 程序 调试
    inno打包教程
    原生xhr、fetch 请求的拦截。mock 技术原理
    package.json 字段说明
    npm 依赖包 的管理【即 node_modules目录的设计原理】
    现在浏览器、webview 中 css的兼容性问题。
    安卓APP(H5本地打包apk应用)
    npm 脚本
    linux系统 离线安装node和nginx(即npm包)
  • 原文地址:https://www.cnblogs.com/Ming8006/p/2934767.html
Copyright © 2020-2023  润新知