随笔分类 - .net
摘要:【checked和unchecked基元类型操作】1.第一种使用方式UInt32 invalid = unchecked((UInt32) (-1)); //OK,不会抛异常Byte b = 100;b = checked((Byte) (b + 200));//抛出OverflowExceptio...
阅读全文
posted @ 2015-05-05 09:41
lishidefengchen
摘要:【基元类型推荐】推荐直接使用 FCL 类型。【理由】编码时不至于困惑string与String的使用。由于C#的stirng(一个关键字)直接映射到System.String(一个 FCL类型),所以两者没有区别,都可以使用。不至于困惑int在32位操系统和64位操作系统上代表的整数不同。 有的开发...
阅读全文
posted @ 2015-05-04 14:04
lishidefengchen
摘要:【概念】编译器直接支持的数据类型【C#基元类型与对应的 FCL 类型】C#基元类型 FCL类型 说明 sbyteSystem.Sbyte有符号8位值byte System.Byte无符号8号位值shortSystem.Int16有符号16位值ushortSystem.UInt16无符号16位...
阅读全文
posted @ 2015-05-04 11:13
lishidefengchen
摘要:命名空间和程序集不一定相关1. 同一个命名空间中的各个类型可能是在不同的程序集中实现的。(System.IO.FileStream在MSCorLib.dll程序集中,而System.IO.FileSystemWatcher在System.dll程序集中)2. 同一个程序集中,也可能包含不同命名空间中...
阅读全文
posted @ 2015-04-29 23:35
lishidefengchen
摘要:1. C#不要求任何特殊语法即可将一个对象转换为它的任何基类型,因为向基类型的转换被认为是一种安全的隐式转换;2. 然而,将对象转换为它的某个派生类型时,C#要求开发人员只能进行显示转换,因为这样的转换可能在运行时失败;例子:internal class Employee{ ... }public ...
阅读全文
posted @ 2015-04-26 21:54
lishidefengchen
摘要:CLR使用 new 操作符来创建新对象,例如:Employee e=new Employee("Param1"); 以下是 new 操作符所做的事情。它计算类型及其所有基类型(一直到 System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数。堆上的每个对象都需要一些...
阅读全文
posted @ 2015-04-26 21:38
lishidefengchen
摘要:在 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_高级管理控制(配置) 中,是由程序集的发布者将程序集的一个新版本发送给管理员,后者安装程序集,并手动编辑应用程序后机器的 XML配置文件。通常,发布者希望在修复了程序集的一个bug后,能采取一种容易的方式将新的程序集打...
阅读全文
posted @ 2015-04-23 13:13
lishidefengchen
摘要:一个应用程序的XML配置文件示例: ...
阅读全文
posted @ 2015-04-22 00:18
lishidefengchen
摘要:public sealed class Program{ public static void Main() { System.Console.WriteLine("Hi"); }}程序运行时,CLR会加载并初始化它。CLR读取程序集的CLR头,查找标识了应用程序入口方法(Main)的Me...
阅读全文
posted @ 2015-04-21 23:17
lishidefengchen
摘要:1.解决Windows性能不稳定;2.降低Windows程序安装的复杂性;3.解决Windows程序不安全性;4.解决应用程序状态在硬盘上分散;5.允许用户灵活地控制哪些东西能够安装,哪些东西能够运行;本节内容很少,总结得不好,以后慢慢体会~~
阅读全文
posted @ 2015-04-02 19:22
lishidefengchen
摘要:NGen.exe:本地代码生成器。【作用】加快应用程序的启动速度减小应用程序的工作集【缺点】没知识产权保护生成的文件不能及时同步执行时性能较差【建议】客户端考虑使用
阅读全文
posted @ 2015-04-02 18:57
lishidefengchen
摘要:1.IL 基于栈——所有指令压入一个执行栈,并从栈弹出结果。2.IL 指令无类型——指令会判断栈中操作数的类型,并执行恰当的操作。3.IL 最大优势——应用程序的健壮性和安全性。将 IL 编译成本地 CPU 指令时, CLR 会执行验证过程。这个过程检查 IL 代码,确认代码所做的一切都是安全的。例...
阅读全文
posted @ 2015-03-31 00:52
lishidefengchen
摘要:【前言】方法执行前,CLR 会检测方法内代码引用的所有类型。同时 CLR 会分配一个内部数据结构,用来管理对所有引用的类型的访问。首次执行方法时,托管程序集会把 IL 转换成本地 CPU 指令,并将其存储在一个动态分配的内存块中。 这是 CLR 的 JIT(just-in-time)编译器的功能。在...
阅读全文
posted @ 2015-03-24 20:37
lishidefengchen
摘要:1.元数据简介全称:metadata属性:数据表集合产地:面向 CLR 的编译器在托管模块中生成2.元数据内部结构及与托管模块的关系【概述】托管模块中包含着元数据,元数据是由一组数据表组成的。其中一些数据表描述了模块中定义的内容【关系图】3.元数据的用途编译时,元数据消除了对本地 C/C++ 头和库...
阅读全文
posted @ 2015-03-18 20:06
lishidefengchen
摘要:1.CLR简介全称:Common Language Runtime(公共语言进行时)属性:一种托管模块使用对象:面向CLR的所有语言(C#、Basic、IL...)核心功能:内存管理、程序集加载、安全性、异常处理、线程同步2. 源代码与CLR的关系3.CLR托管模块的组成部分【PE32 或 PE32...
阅读全文
posted @ 2015-03-17 22:03
lishidefengchen
摘要:我准备把log4net的实现方法放在一个类库项目中,别的项目直接引用该类库,即可进行日志的记录,操作步骤如下:1.下载log4net.dll文件2.在解决方案下创建类库项目3.把log4net.dll添加到上面创建的类库引用中4.在web项目下,创建单独的log4net配置文件(当然,也可以写在...
阅读全文
posted @ 2015-02-05 15:16
lishidefengchen

浙公网安备 33010602011771号