摘要: 【值类型在装箱过程中内部发生的事情】1.在托管堆中分配好内存。分配的内存量是值类型的各个字段需要的内存量加上托管堆的所有对象都有的两个额外成员(类型对象指针和同步快索引)需要的内存量。2.值类型的字段复制到新分配的堆内存。3.返回对象的地址。现在,这个地址是对一个对象的引用,值类型现在是一个引用类型... 阅读全文
posted @ 2015-05-06 15:43 lishidefengchen 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 【引用类型和值类型的区别】//引用类型(由于使用了‘class’)class SomeRef { public Int32 x; }//值类型(由于使用了‘struct’)struct SomeVal { public Int32 x; }static void ValueTypeDemo() {... 阅读全文
posted @ 2015-05-05 17:55 lishidefengchen 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1. CLR 支持两种类型:引用类型 和 值类型。2. FCL 中大多数的类型是 引用类型,但程序中使用最多的是 值类型。【引用类型】内存必须从托管堆上分配。堆上分配的每个对象都有一个额外的成员,这些成员必须初始化。对象上的其他字节(为字段而设)总是设为零。从托管堆上分配一个对象时,可能强制执行一次... 阅读全文
posted @ 2015-05-05 15:20 lishidefengchen 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 【注意】勾选这个选项会对应用程序的整体性能造成一些影响,但是会更加安全。具体情况根据项目需求来决定。 阅读全文
posted @ 2015-05-05 10:15 lishidefengchen 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 【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 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 工资纠结中~~~ ——2015.05.05 阅读全文
posted @ 2015-05-05 09:08 lishidefengchen 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 【基元类型推荐】推荐直接使用 FCL 类型。【理由】编码时不至于困惑string与String的使用。由于C#的stirng(一个关键字)直接映射到System.String(一个 FCL类型),所以两者没有区别,都可以使用。不至于困惑int在32位操系统和64位操作系统上代表的整数不同。 有的开发... 阅读全文
posted @ 2015-05-04 14:04 lishidefengchen 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 【概念】编译器直接支持的数据类型【C#基元类型与对应的 FCL 类型】C#基元类型 FCL类型 说明 sbyteSystem.Sbyte有符号8位值byte System.Byte无符号8号位值shortSystem.Int16有符号16位值ushortSystem.UInt16无符号16位... 阅读全文
posted @ 2015-05-04 11:13 lishidefengchen 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 命名空间和程序集不一定相关1. 同一个命名空间中的各个类型可能是在不同的程序集中实现的。(System.IO.FileStream在MSCorLib.dll程序集中,而System.IO.FileSystemWatcher在System.dll程序集中)2. 同一个程序集中,也可能包含不同命名空间中... 阅读全文
posted @ 2015-04-29 23:35 lishidefengchen 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1. C#不要求任何特殊语法即可将一个对象转换为它的任何基类型,因为向基类型的转换被认为是一种安全的隐式转换;2. 然而,将对象转换为它的某个派生类型时,C#要求开发人员只能进行显示转换,因为这样的转换可能在运行时失败;例子:internal class Employee{ ... }public ... 阅读全文
posted @ 2015-04-26 21:54 lishidefengchen 阅读(169) 评论(0) 推荐(0) 编辑
摘要: CLR使用 new 操作符来创建新对象,例如:Employee e=new Employee("Param1"); 以下是 new 操作符所做的事情。它计算类型及其所有基类型(一直到 System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数。堆上的每个对象都需要一些... 阅读全文
posted @ 2015-04-26 21:38 lishidefengchen 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 在 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_高级管理控制(配置) 中,是由程序集的发布者将程序集的一个新版本发送给管理员,后者安装程序集,并手动编辑应用程序后机器的 XML配置文件。通常,发布者希望在修复了程序集的一个bug后,能采取一种容易的方式将新的程序集打... 阅读全文
posted @ 2015-04-23 13:13 lishidefengchen 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1.运行cmd2.输入 “services.msc” 回车3.查看要删除的服务的名称(注意:不是显示名)4.运行cmd5.输入 “sc delete 服务名” 回车 阅读全文
posted @ 2015-04-22 10:28 lishidefengchen 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一个应用程序的XML配置文件示例: ... 阅读全文
posted @ 2015-04-22 00:18 lishidefengchen 阅读(455) 评论(0) 推荐(0) 编辑
摘要: public sealed class Program{ public static void Main() { System.Console.WriteLine("Hi"); }}程序运行时,CLR会加载并初始化它。CLR读取程序集的CLR头,查找标识了应用程序入口方法(Main)的Me... 阅读全文
posted @ 2015-04-21 23:17 lishidefengchen 阅读(242) 评论(0) 推荐(0) 编辑