ag
原创 2023-07-04 21:11:40
97阅读
Jeffrey Richter是个不错的专栏作家,也是个很能恶搞的人:),目前正在北京Sigma地下一层做C# Programming:Advanced的讲座.今明两天.传一些照片与大家分享,结束后我会将讲座的content传上来和大家共享. 
原创 2007-04-09 13:29:00
740阅读
This article assumes you're familiar with C and C++Level of Difficulty     1   2   3  SUMMARY Garbage collection in the Microsoft .NET common language runtime environment completely absolves the devel
转载 2007-12-15 13:30:00
113阅读
2评论
1.CLR简介全称:Common Language Runtime(公共语言进行时)属性:一种托管模块使用对象:面向CLR的所有语言(C#、Basic、IL...)核心功能:内存管理、程序集加载、安全性、异常处理、线程同步2. 源代码与CLR的关系3.CLR托管模块的组成部分【PE32 或 PE32...
转载 2015-03-17 22:03:00
185阅读
2评论
1. C#不要求任何特殊语法即可将一个对象转换为它的任何基类型,因为向基类型的转换被认为是一种安全的隐式转换;2. 然而,将对象转换为它的某个派生类型时,C#要求开发人员只能进行显示转换,因为这样的转换可能在运行时失败;例子:internal class Employee{ ... }public ...
转载 2015-04-26 21:54:00
79阅读
2评论
1.元数据简介全称:metadata属性:数据表集合产地:面向 CLR 的编译器在托管模块中生成2.元数据内部结构及与托管模块的关系【概述】托管模块中包含着元数据,元数据是由一组数据表组成的。其中一些数据表描述了模块中定义的内容【关系图】3.元数据的用途编译时,元数据消除了对本地 C/C++ 头和库...
转载 2015-03-18 20:06:00
117阅读
2评论
1、代码使用 dynamic 表达式/变量来调用一个成员时,编译器会生成特殊的 IL 代码来描述所需的操作。这种特殊的代码称为 payload(有效载荷)。在运行时,payload 代码根据当前由 dynamic 表达式/变量引用的对象的实际类型来决定具体执行的操作。【例子】private stat...
转载 2015-05-15 16:36:00
119阅读
2评论
【checked和unchecked基元类型操作】1.第一种使用方式UInt32 invalid = unchecked((UInt32) (-1)); //OK,不会抛异常Byte b = 100;b = checked((Byte) (b + 200));//抛出OverflowExceptio...
转载 2015-05-05 09:41:00
136阅读
2评论
【前言】方法执行前,CLR 会检测方法内代码引用的所有类型。同时 CLR 会分配一个内部数据结构,用来管理对所有引用的类型的访问。首次执行方法时,托管程序集会把 IL 转换成本地 CPU 指令,并将其存储在一个动态分配的内存块中。 这是 CLR 的 JIT(just-in-time)编译器的功能。在...
转载 2015-03-24 20:37:00
183阅读
2评论
【基元类型推荐】推荐直接使用 FCL 类型。【理由】编码时不至于困惑string与String的使用。由于C#的stirng(一个关键字)直接映射到System.String(一个 FCL类型),所以两者没有区别,都可以使用。不至于困惑int在32位操系统和64位操作系统上代表的整数不同。 有的开发...
转载 2015-05-04 14:04:00
130阅读
2评论
CLR使用 new 操作符来创建新对象,例如:Employee e=new Employee("Param1"); 以下是 new 操作符所做的事情。它计算类型及其所有基类型(一直到 System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数。堆上的每个对象都需要一些...
转载 2015-04-26 21:38:00
119阅读
2评论
【概念】编译器直接支持的数据类型【C#基元类型与对应的 FCL 类型】C#基元类型 FCL类型 说明 sbyteSystem.Sbyte有符号8位值byte System.Byte无符号8号位值shortSystem.Int16有符号16位值ushortSystem.UInt16无符号16位...
转载 2015-05-04 11:13:00
100阅读
2评论
NGen.exe:本地代码生成器。【作用】加快应用程序的启动速度减小应用程序的工作集【缺点】没知识产权保护生成的文件不能及时同步执行时性能较差【建议】客户端考虑使用
转载 2015-04-02 18:57:00
84阅读
2评论
1.IL 基于栈——所有指令压入一个执行栈,并从栈弹出结果。2.IL 指令无类型——指令会判断栈中操作数的类型,并执行恰当的操作。3.IL 最大优势——应用程序的健壮性和安全性。将 IL 编译成本地 CPU 指令时, CLR 会执行验证过程。这个过程检查 IL 代码,确认代码所做的一切都是安全的。例...
转载 2015-03-31 00:52:00
116阅读
2评论
一个应用程序的XML配置文件示例: ...
转载 2015-04-22 00:18:00
116阅读
2评论
【应用场景】程序集A访问程序集B定义的Internal访问类型的类的成员。【使用方式】在构建程序集B的时候,引入System.Runtime.CompilerServices,以此来添加InternalsVisibleToattribute【例子】程序集B——using System;using S...
转载 2015-05-27 13:10:00
155阅读
2评论
1.解决Windows性能不稳定;2.降低Windows程序安装的复杂性;3.解决Windows程序不安全性;4.解决应用程序状态在硬盘上分散;5.允许用户灵活地控制哪些东西能够安装,哪些东西能够运行;本节内容很少,总结得不好,以后慢慢体会~~
转载 2015-04-02 19:22:00
58阅读
2评论
【Class中,可能包含的成员】常量,字段,实例构造器,类型构造器,方法,操作符重载,转换操作符,属性,事件,类型(Class)
转载 2015-05-19 09:25:00
92阅读
2评论
在 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_高级管理控制(配置) 中,是由程序集的发布者将程序集的一个新版本发送给管理员,后者安装程序集,并手动编辑应用程序后机器的 XML配置文件。通常,发布者希望在修复了程序集的一个bug后,能采取一种容易的方式将新的程序集打...
转载 2015-04-23 13:13:00
75阅读
2评论
1. CLR 支持两种类型:引用类型 和 值类型。2. FCL 中大多数的类型是 引用类型,但程序中使用最多的是 值类型。【引用类型】内存必须从托管堆上分配。堆上分配的每个对象都有一个额外的成员,这些成员必须初始化。对象上的其他字节(为字段而设)总是设为零。从托管堆上分配一个对象时,可能强制执行一次...
转载 2015-05-05 15:20:00
123阅读
2评论
  • 1
  • 2
  • 3
  • 4