CTS(common type system)
通用类型系统规定,一个类型可以包含零个或者多个成员,如下:
 
字段(Field):
作为对象状态一部分的数据变量。字段根据名称和类型来区分
 
方法(Method):
针对对象执行操作的函数,通常会改变对象状态。方法有一个名称,一个签名以及一个或多个修饰符。签名指定参数数量(及其顺序);参数类型:方法是否有返回值。如果有返回值,还要指定返回值类型
 
属性(prolerty):
对于调用者,属性看起来像是字段。但是对于类型的实现者,属性看起来是一个方法(或是两个方法)。属性允许在访问值之前校验输入参数和对象状态,以及或者仅在必要时才计算某个值。属性还允许类型的用户采用简化语法。最后,属性允许创建只读或只写的字段
 
事件:
事件在对象以及其他相关对象之间实现了通知机制。例如,利用按钮提供的一个事件,可在按钮被点击之后通知其他对象
 
同时CTS还指定了可见性规则以及类型成员的访问规则,例如如果将类型标记为public,任何程序集都能看见并访问该类型。但是如果标记为assembly(C#中使用internal修饰),只有同一个程序集中的代码才能看见并访问该类型,所以,利用CTS制定的规则,程序集为一个类型建立了可视边界,CLR也强制贯彻了这些规则:
private:
成员只能由同一个类型中的其他成员访问;
protected:
成员可由派生类访问,不管那些类型是否在同一程序集中。
internal:
成员可由同一个程序集中的任何代码访问
protected internal:
成员可由任何程序集中的派生类型访问,成员也可由同一程序集中的任何类型访问
public
成员可由任何程序集中的任何代码访问

CLR via 随书笔记的更多相关文章

  1. CLR via C#学习笔记----知识总概括

    第1章 CLR的执行模型 托管模块的各个组成部分:PE32或PE32+头,CLR头,元数据,IL(中间语言)代码. 高级语言通常只公开了CLR的所有功能的一个子集.然而,IL汇编语言允许开发人员访问C ...

  2. 《大象UML》看书笔记2:

    <大象UML>看书笔记2 抽象角度:                                                        在为现实世界建模的时候,首先要搞清楚有多 ...

  3. .NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)

    原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数 ...

  4. JavaScript看书笔记01

    JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...

  5. 简明Python教程 ~ 随书笔记

    本文是阅读<简明Python教程>所做的随书笔记,主要是记录一些自己不熟悉的用法,或者所看到的比较有意思的内容,本书英文版A Byte of Python, 中文译版 简明Python教程 ...

  6. 《Effective C++》第8章 定制new和delete-读书笔记

    章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...

  7. 初入 CLR - 阅读《CLR via C#》笔记

    最近买了一本书<CLR via C#>阅读了第一章 - CLR 的执行模型,对 .NET 一直提到的 CLR 和 .NET Framework 有了一个大致的了解.我理解主要体现在: ■ ...

  8. 锋利的jquery-读书笔记(一)

    最近转职做前端,学了两个月目前学到jquery的部分,看的是<锋利的jquery>这本书,特地开了博客将自己学习过程中看到的一些知识做一个笔记. 第一章: 一.jQuery对象和DOM对象 ...

  9. spring笔记----看书笔记

    上周末看了一章以前javaee轻量级的书spring部分,简单做了一些笔记 // ApplicationContext ac=new ClassPathXmlApplicationContext(&q ...

随机推荐

  1. 移动端踩坑之旅-ios下fixed、软键盘相关问题总结

    最近一个项目掉进了移动端的大坑,包括ios下fixed布局,h5唤起键盘等问题,作为一个B端程序员,弱项就是浏览器的兼容性和移动端的适配(毕竟我们可以要求使用chrome),还好这次让我学习了一下相关 ...

  2. spring 整合Mybatis 错误:Parameter 'items_id' not found. Available parameters are [array]

    运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:Parameter 'items_id' not found. ...

  3. JavaScript事件循环(Event Loop)机制

    JavaScript 是单线程单并发语言 什么是单线程 主程序只有一个线程,即同一时间片断内其只能执行单个任务. 为什么选择单线程? JavaScript的主要用途是与用户互动,以及操作DOM.这决定 ...

  4. 第3阶段——内核启动分析之make menuconfig内核配置(2)

    目标: 分析make menuconfig内核配置过程 在上1小结中(内核编译试验)讲到了3种不同的配置: (1)通过make menuconfig 直接从头到尾配置.config文件 (2) 通过m ...

  5. STM32—无需中断来实现使用DMA接收串口数据

    本节目标: 通过DMA,无需中断,接收不定时长的串口数据 描述:当在串口多数据传输下,CPU会产生多次中断来接收串口数据,这样会大大地降低CPU效率,同时又需要CPU去做其它更重要的事情,我们应该如何 ...

  6. Java学习记录 : 画板的实现

    接触java不满一个月,看厚厚的java入门简直要醉,故利用实例来巩固所学知识. 画板的实现其实从原理来说超级简单,可能一会儿就完成了. 但作为一名强迫症患者,要实现和win下面的画板一样的功能还是需 ...

  7. 九度OJ 1016 火星A+B AC版

    #include <iostream> #include <string.h> #include <sstream> #include <math.h> ...

  8. HTML5 javascript 音乐 音频

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 个人作业3—个人总结(Alpha阶段)

    一.关于Alpha阶段的总结 1.我们团队的情况 关于我们拖拉机团队,大家在一起做项目的这几周算是比较团结.首先组长布置的任务,每个人都有认真去做,每次例会还会总结不足,提出改进,并且实施这些改进:其 ...

  10. 通过修改my.ini配置文件来解决MySQL 5.6 内存占用过高的问题

    打开后台进程发现mysql占用的内存达到400+M. 修改一下my.ini这个配置文件的配置选项是可以限制MySQL5.6内存占用过高这一问题的,具体修改选项如下: performance_schem ...