《修炼之道:.NET开发要点精讲》读书笔记(一)
CLR 公共语言运行库
没有CLR的存在,就不能讲该中间件转换成对应操作系统中的机器指令。
程序集是非完全编译的产物,它兼备了源代码和本地代码的特性,是一种介于源代码和本地代码之间的独立存在的一种数据结构,它同时具有可读性和可执行性。
程序集组成:IL、元数据、清单、资源等。
程序集特征:语言独立、二级制兼容、重用性、部署方便。
.NET程序集并不是最终可以运行在操作系统中的机器指令,它只是介于源代码和机器指令之间的一个中间件,没有CLR的存在,就不能将该中间件转换成对应操作系统中的机器指令。
可读性:对于开发者来讲,可以从程序集中读取出类似元数据、IL代码或者资源等信息。
可执行性:对于最终用户,程序集是可以在CLR中运行的。
一些编程约定:
一个线程可以调用多个方法,而一个方法又可以被多个线程调用。
哪个线程调用了方法,哪个线程就叫做这个方法的调用线程,方法在哪个线程中运行,哪个线程就是该方法的当前线程。
调用指我们调用系统的方法,回调指系统调用我们写的方法。
.NET中的回调主要是通过委托来实现的。
两种可能引起非线程安全的情况:
①两个线程访问一个对象,前一个操作还未结束,后一个操作就开始了;②多个线程同事访问一个对象。
托管资源(如内存)由CLR管理,非托管资源指对象使用到的一些托管环境之外(比如操作系统)的资源,.NET中对象使用到的非托管资源主要有IO流、数据库连接、Socket连接、窗口句柄等各种直接与操作系统相关的资源。
框架算是不完整的应用程序,类库多半指能够提供一些具体功能的类集合,它包含的内容和功能一般比框架更简单。
JavaScript基于对象。
使用interface关键字定义的接口类型,它代表编程过程中的一种“协议”,是代码中调用方和被调用方必须遵守的契约,如果一方不遵守,那么调用就不会成功:
1)调用方必须存在一个接口引用;2)被调用方必须实现该接口。
数据类型:
值类型赋值就是一种浅复制。
对象进行浅复制时,只将对象的直接成员一一拷贝,当对象包含有引用类型成员时,源对象与副本之间有关联;
对象进行深复制时,会将对象的所有成员(包括直接成员与间接成员)依次进行拷贝,不管对象是否包含引用类型成员,源对象与副本都无任何关联。
string类型是一个特殊引用类型,它的判等不同于其他引用类型去比较对象引用是否指向堆中同一实例,而是和值类型判等一直,比较对象内容是否一一相等。除此之外,string类型还是不可改变类型,对string对象的任何操作均不能改变该对象。
结构类型不支持继承,可以实现接口。
构造函数用于创建类的实例,并对实例进行初始化操作。一般情况下,构造函数是实例构造函数。
派生类中只有继承的虚方法或抽象方法可以被重写,并且静态方法不能被重写。
sealed(密封)与abstract(抽象类)互斥。
当类中某些成员不需要创建实例实现,则可将其声明为静态类成员。
重载是方法的名称相同,函数签名不同,进行多次重载以适应不同的需要;
重写(override)是进行基类中函数的扩展或改写,其签名必须与被重写函数保持一致。
this 引用类的当前实例;
base 派生类访问基类成员。
《修炼之道:.NET开发要点精讲》读书笔记(一)的更多相关文章
- 《html5 从入门到精通》读书笔记(一)
今天看了<html5 从入门到精通>这本书,感觉阅读下来很舒心,不像阅读其他书籍很揪心.html增加的知识点,我觉得非常有价值,看完几章记录了一些内容,不但能巩固,也为下次遗忘知识点做好准 ...
- HTML5从入门到精通(明日科技) 中文pdf扫描版
HTML5从入门到精通(明日科技) 中文pdf扫描版
- HTML5从入门到精通(千锋教育)免费电子版+PDF下载
本书是HTML5初学者极好的入门教材之一,内容通俗易懂.由浅入深.循序渐进.本书内容覆盖全面.讲解详细,其中包括标签语义化.标签使用规范.选择器类型.盒模型.标签分类.样式重置.CSS优化.Photo ...
- Unity Shader入门精要读书笔记(一)序章
本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...
- Oracle从入门到精通----学习笔记
书名:<Oracle从入门到精通:视频实战版>秦靖.刘存勇等编著 第4章 SQL基础 1.SQL语言分类 数据定义语言 --- DDL,Data Definition Language 数 ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- Unity Shader入门精要读书笔记(二)UnityShader概述
第三章<UnityShader概述>的读书笔记: 1.Unity Shader模板提供了几种选择: 标准光照模型(新添加的基于物理的渲染方法) 不含光照的基本的顶点.片元着色器 屏幕后处理 ...
- 《html5 从入门到精通》读书笔记(二)
接着上面继续记录笔记,这次要记的知识点比较多...记录下我认为比较重要的东西. 一.表单属性 1.autocomplete属性 该属性规定form或input域应该拥有自动完成功能. <form ...
- 《html5 从入门到精通》读书笔记(三)
二.标签详解 标签 描述 4 5 <form> 定义表单. 4 5 <h1> to <h6> 定义标题1到标题6. 4 5 <head> 定义关于文档的 ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
随机推荐
- Delphi 字母 递增 递减算法
网上看了一下,好象没有现成的,自己随手写了一下,给大家参考一下吧 // a..z 97..122 A..Z 65..90 function UpABC(ABC : String; AddCount : ...
- 1. maven 手动添加jar包
mvn install:install-file -Dfile=isc_sso_agent-1.0.jar -DgroupId=com.sgcc.isc -DartifactId=isc_sso_ag ...
- openvpn-monitor openvpn-server的监控插件
项目地址 https://github.com/furlongm/openvpn-monitor
- Centos7】hostnamectl 设置主机名
Centos7中提供了设置主机名的工具 hostnamectl hostname有三种状态 static(永久) transient(瞬态) pretty (灵活) 查看主机名状态 [oracle@h ...
- <mvc:resources mapping="/xxx/**" location="/xxx/"/>无效,可能和Controller的URL模式有关
某项目webapp下有子目录res,其中有img.css.js等存放静态资源的文件夹. 在定义了dispacher-servlet的<url-pattern>/</url-patte ...
- Git安装配置,和使用的简介
方案1:安装Git和TortoiseGit,使用TortoiseGit的图形化界面管理项目代码 材料准备: Git安装包 TortoiseGit安装包 注:包资源,可疑百度搜索,在Git官网下载 安装 ...
- 【IDEA】关于idea开发工具使用
idea这个开发工具有很强大的功能,然鹅有时候某些地方需要注意...(注明一下,我的版本2017.3.2因为不知道新版本有木有优化) 先说说建包,比如我在src下建了个com.xxxxx.test的包 ...
- checkbox、radio控件和文字不对齐
一般使用html控件的时候 单选按钮和复选框的控件和文字不对齐 给input控件加上 style="vertical-align: middle; margin-top: -2px; ...
- 利用ELK分析Nginx日志
本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...
- oracle 按表数据新增一行
在功能实现时,能尽量用一个sql语句直接实现业务逻辑的话,就不要去写C#代码,便于维护. 以下sql的逻辑是:给明细表新增一条数据,前提是传入的债券代码存在与债券表,否则不新增.此sql返回受影响行数 ...