读经典——《CLR via C#》(Jeffrey Richter著) 笔记_NGen.exe 转载 mb5fe55a1c73221 2015-04-02 18:57:00 文章标签 C# 应用程序 本地代码 工作集 客户端 文章分类 代码人生 NGen.exe:本地代码生成器。 【作用】 加快应用程序的启动速度 减小应用程序的工作集 【缺点】 没知识产权保护 生成的文件不能及时同步 执行时性能较差 【建议】 客户端考虑使用 本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。 赞 收藏 评论 分享 举报 上一篇:读经典——《CLR via C#》(Jeffrey Richter著) 笔记_.Net Framework 部署目标 下一篇:读经典——《CLR via C#》(Jeffrey Richter著) 笔记_IL和验证 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 C、C++、C#、的关系 一、起源C语言是由贝尔实验室的Dennis Ritchie于20世纪70年代初开发的,它是一种通用的面对过程的编程语言,广泛应用于系统软件、应用软件和嵌入式开发领域。对标于汇编语言,旨在提供更高级、更易用的编程抽象,同时保持操作系统级别的灵活性和效率。C++语言是由Bjarne Stroustrup在20世纪80年代初基于C语言开发而来的,旨在为C语言添加面向对象编程的特性,同时保留C语言的效 编程语言 面向对象编程 面向对象 C# 多个文件生成zip /// <summary>/// 多文件处理 压缩/// </summary>/// <param name="files">多个文件的物理路径(带后缀)</param>/// <param name="ZipedFileName">压缩后的文件物理路径(带后缀)</param>/// <param name= 压缩文件 C# 生成压缩文件 C#进阶-实现邮箱收发功能 本文介绍了C#开发中常用的操作邮箱的方法,包括使用SMTP协议发送邮件、通过POP3和IMAP协议接收邮件,以及利用Exchange服务器进行邮件的发送、接收和管理等。每种方法都配有相应的示例代码,帮助读者快速上手。无论是自动化通知、报警还是与用户进行交互,C#提供了多种灵活可靠的方式来实现邮件功能,满足不同场景的需求。 发送邮件 读取收件箱 C# Exchange SMTP 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_CLR 1.CLR简介全称:Common Language Runtime(公共语言进行时)属性:一种托管模块使用对象:面向CLR的所有语言(C#、Basic、IL...)核心功能:内存管理、程序集加载、安全性、异常处理、线程同步2. 源代码与CLR的关系3.CLR托管模块的组成部分【PE32 或 PE32... C# 元数据 c# 内存管理 实用程序 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型转换 1. C#不要求任何特殊语法即可将一个对象转换为它的任何基类型,因为向基类型的转换被认为是一种安全的隐式转换;2. 然而,将对象转换为它的某个派生类型时,C#要求开发人员只能进行显示转换,因为这样的转换可能在运行时失败;例子:internal class Employee{ ... }public ... C# c# 显示转换 派生类 开发人员 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_元数据 1.元数据简介全称:metadata属性:数据表集合产地:面向 CLR 的编译器在托管模块中生成2.元数据内部结构及与托管模块的关系【概述】托管模块中包含着元数据,元数据是由一组数据表组成的。其中一些数据表描述了模块中定义的内容【关系图】3.元数据的用途编译时,元数据消除了对本地 C/C++ 头和库... C# 程序集 元数据 字段 扩展名 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_dynamic基元类型 1、代码使用 dynamic 表达式/变量来调用一个成员时,编译器会生成特殊的 IL 代码来描述所需的操作。这种特殊的代码称为 payload(有效载荷)。在运行时,payload 代码根据当前由 dynamic 表达式/变量引用的对象的实际类型来决定具体执行的操作。【例子】private stat... C# 操作符 编译器 c# 参数类型 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_基元类型(三) 【checked和unchecked基元类型操作】1.第一种使用方式UInt32 invalid = unchecked((UInt32) (-1)); //OK,不会抛异常Byte b = 100;b = checked((Byte) (b + 200));//抛出OverflowExceptio... C# 值类型 操作符 有符号数 溢出检查 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_方法执行 【前言】方法执行前,CLR 会检测方法内代码引用的所有类型。同时 CLR 会分配一个内部数据结构,用来管理对所有引用的类型的访问。首次执行方法时,托管程序集会把 IL 转换成本地 CPU 指令,并将其存储在一个动态分配的内存块中。 这是 CLR 的 JIT(just-in-time)编译器的功能。在... C# 应用程序 数据结构 编译器 动态分配 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_基元类型(二) 【基元类型推荐】推荐直接使用 FCL 类型。【理由】编码时不至于困惑string与String的使用。由于C#的stirng(一个关键字)直接映射到System.String(一个 FCL类型),所以两者没有区别,都可以使用。不至于困惑int在32位操系统和64位操作系统上代表的整数不同。 有的开发... C# c# 64位操作系统 开发人员 c++ 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_new新建对象 CLR使用 new 操作符来创建新对象,例如:Employee e=new Employee("Param1"); 以下是 new 操作符所做的事情。它计算类型及其所有基类型(一直到 System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数。堆上的每个对象都需要一些... C# 构造器 字段 字节数 初始化 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_基元类型(一) 【概念】编译器直接支持的数据类型【C#基元类型与对应的 FCL 类型】C#基元类型 FCL类型 说明 sbyteSystem.Sbyte有符号8位值byte System.Byte无符号8号位值shortSystem.Int16有符号16位值ushortSystem.UInt16无符号16位... C# c# 浮点 编译器 c++ 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_IL和验证 1.IL 基于栈——所有指令压入一个执行栈,并从栈弹出结果。2.IL 指令无类型——指令会判断栈中操作数的类型,并执行恰当的操作。3.IL 最大优势——应用程序的健壮性和安全性。将 IL 编译成本地 CPU 指令时, CLR 会执行验证过程。这个过程检查 IL 代码,确认代码所做的一切都是安全的。例... C# 应用程序 执行栈 健壮性 元数据 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_高级管理控制(配置) 一个应用程序的XML配置文件示例: ... C# 程序集 应用程序 重定向 加载 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_友元程序集 【应用场景】程序集A访问程序集B定义的Internal访问类型的类的成员。【使用方式】在构建程序集B的时候,引入System.Runtime.CompilerServices,以此来添加InternalsVisibleToattribute【例子】程序集B——using System;using S... C# 程序集 应用场景 版本号 访问类型 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_.Net Framework 部署目标 1.解决Windows性能不稳定;2.降低Windows程序安装的复杂性;3.解决Windows程序不安全性;4.解决应用程序状态在硬盘上分散;5.允许用户灵活地控制哪些东西能够安装,哪些东西能够运行;本节内容很少,总结得不好,以后慢慢体会~~ C# 程序安装 应用程序状态 知识 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型的各种成员 【Class中,可能包含的成员】常量,字段,实例构造器,类型构造器,方法,操作符重载,转换操作符,属性,事件,类型(Class) C# 构造器 字段 操作符重载 操作符 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_发布者策略控制 在 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_高级管理控制(配置) 中,是由程序集的发布者将程序集的一个新版本发送给管理员,后者安装程序集,并手动编辑应用程序后机器的 XML配置文件。通常,发布者希望在修复了程序集的一个bug后,能采取一种容易的方式将新的程序集打... C# 程序集 配置文件 xml 应用程序 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_引用类型和值类型(一) 1. CLR 支持两种类型:引用类型 和 值类型。2. FCL 中大多数的类型是 引用类型,但程序中使用最多的是 值类型。【引用类型】内存必须从托管堆上分配。堆上分配的每个对象都有一个额外的成员,这些成员必须初始化。对象上的其他字节(为字段而设)总是设为零。从托管堆上分配一个对象时,可能强制执行一次... C# 值类型 引用类型 字段 初始化 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_8.1实例构造器和类A public class SomeType{}//等价于public class SomeType{ public SomeType():base(){}}【解释】如果定义的类没有显示定义任何构造器,C#编译器将定义一个默认(无参)构造器。在它的实现中,只是简单地调用了基类的无参构造器。 C# 构造器 编译器 c# 知识