摘要:
预处理指令主要用于影响程序的编译过程,提供编译信息或禁止部分代码段的编译,C#其实并没有C++一样的独立预处理器,预处理指令也是由编译器处理的1.#define,#undef 用于声明或删除符号定义,#define和#undef必须放在文件的第一行,且定义的符号(变量)只在当前文件范围内有效2.#if,#elif,#else ,#endif 用于在根据定义的符号/变量 来判断标识的代码块是否需要被编译,如果不需要,则不会对其进行编译,生成的可执行文件也会相应缩小#define Debugusing System;using System.Collections.Generic;using Sy 阅读全文
摘要:
1.Switch(1)C#中case值不能使用变量(可以使用常量)(2)激活了其中一个Case语句则其他Case不能被激活,除非使用goto case语句(3)如果Case语句处理为空 即:【case “asd” :case “eee”:】 则可以实现多条件并用处理(4)case顺序无关紧要,所以所有case的值不能相同(包括值相同的常量)(5)C#中case可以进行字符串的判断2.枚举类(enum)(0)枚举类定义方法public enum TimeOfDay{ Moring = 0, Afternoon = 1, Evening = 2,}public class tes... 阅读全文
摘要:
将WCF寄宿在IIS上是WCF的一种寄宿方式,但是一直找不到在IIS上寄宿TCP的方法,由于先前使用的是IIS6,所以一直报net.tcp不能解析..上网查阅了很多资料发现似乎只有IIS7支持对TCP等其他通信方式的寄宿(WAS),下载了虚拟机装上Win7准备试一把(本来准备装Win2008可是公司只有DC版R2的镜像文件,装上之后怎么都激活不了.....)0.安装IIS,FrameWork,WAS这些都是Windows组件里添加的,就不多说了1.配置IIS支持对WCF的寄宿这里是第一个纠结点,如果配置不好,别说TCP,连HTTP都寄宿不上。一般情况下,如果机器上已经安装IIS,在安装.Net 阅读全文
摘要:
托管堆内存管理策略与垃圾回收托管堆将对象依次保存,垃圾回收之后进行一次内存整理,所以如果GC的频繁发生会降低系统性能,因为GC对内存的清理造成对象在内存中的移动,在整个GC结束之前,CLR上的应用程序不可能继续运行,.net 使用世代垃圾回收器,CLR上的内存管理策略与OS的内存管理策略类似(CLR本身也就是虚拟机)。1.CLR内存管理CLR的托管堆的将对象依次保存在内存上,如果有新的内存请求,会在托管堆中遍历,找到第一个大小符合要求的连续内存空间,将对象保存在该空间。如图,假设CLR从内存为4001的存储块(不知道CLR是不是使用分页系统,所以只能用存储块来描述)开始寻址,此时需要分配一个大 阅读全文