随笔分类 - .NET
摘要:问题是:try{} 里有一个return语句, 那么紧跟这个try后的finally{}里的code会不会被执行,什么时候被执行, 在return前还是后?有回答是:finally块先于return执行。这个问题可以用一个小实验得到解答int result = test(); }private int test() { int i = 0; int j = 0; try { ++i; ++j; return i+j; } catch { --i; retu...
阅读全文
摘要:8)解决冲突冲突分为两种:文件冲突---当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突。下面的属性冲突应该也属于文件冲突。 树冲突---当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。先看文件冲突两个开发人员改变文件中相同的行时,就会发生文件冲突,Subversion会把解决冲突的任务留给开发人员。 一个文本文件中冲突的区域会标识如下: >>>>>> revision而且对于每个发生冲突的文件,Subversion会生成三个额外的文件在相同的目录下:
阅读全文
摘要:1)导入数据到版本库第一种情况,使用Import导入命令的时候不能选择包含哪些指定文件或目录, 导入的文件夹不能变成工作副本,(如果你在“工作副本”目录下执行导入命令是不起作用的。)必须通过签出操作从服务器拿回工作副本。 很容易把错误的文件夹层次导入到版本库。现在进入资源管理器,选择你的项目的顶层目录,右击打开上下文菜单。选择命令TortoiseSVN → 导入 ...,它会弹出一个对话框:在这个对话框中,需要输入版本库所在的 URL,你的项目将会导入到这里。非常重要的事项,你必须了解: 你要导入的本地文件夹自身不会出现在版本库中,版本库中只有文件夹中的内容。例如,你有这样的文件夹结构: C:
阅读全文
摘要:CC.NET 是 CruiseControl.NET 的简称,官方网站在这里。 官方的定义是自动连续集成服务, 使用Microsoft .NET Framework实现. 另外它还有Java的版本叫做CruiseControl。1)CC.NET 单独是不起什么作用的,在部署CC.NET 之前,还需要安装版本控制服务,它支持下列表所示的代码控制,下面我们以Subversion为例来说明, 在另一部机器装上VisualSVN Service,机器名为greg-pc1, 本机安装TortoiseSVN客户端。2)首先,确保你的电脑上已经安装了IIS(因为CC.NET会在IIS里面建立一个虚拟目录作为
阅读全文
摘要:编程初段通常比较喜欢使用静态变量,和静态方法,因为很方便,不用仔细构建框架。但是对封装性破坏很大,internal static 或public static 声明的东西几乎程序里什么地方都可以使用,但是我觉得很容易出问题。 前几天碰到一个问题, 程序启动的时候需要检查一下配置目录,当不存在此目录,就去创建一个。程序如下: public class ClassDebug { public static string 静态属性 { get { string tempPath = ...
阅读全文
摘要:c#4.5中出现了async 和 await关键字,对于简化异步的写法有很大帮助,说是编译器帮你做了很多自动修改代码的工作,比Java7异步框架好了不知道多少,吹牛吧, 这类语法糖带来的后果是写代码的人根本就不知道后面的原理,也很难入门,要看大量的资料。 首先看TAP,基于任务的异步模式,之前最好先了解APM,异步模型, 和EAP, 基于事件的异步模式,饶了一圈才知道这个东西怎么用。 但是博客园里的文章少之又少,也没有解释清楚。今天看了TIM的一篇文章,觉得能解释清楚吧, 所以转到这里。若果要举一个简单的例子,就用一个Windows Forms 应用加一个长时间运行的任务来做演示,目的是不想长
阅读全文
摘要:试着画了一个状态图,不一定对一个线程至少总是处于 ThreadState 枚举中的一个可能状态,并且可以同时处于多个状态。进入托管环境的非托管线程已处于已启动状态。 线程在启动状态后,许多操作都可使线程更改状态。 下表列出使状态发生更改的操作以及相应的新状态。操作由于 Running 状态的值为 0,因此无法执行位测试来发现此状态。 但可以使用以下测试(以伪代码表示)。if ((state & (Unstarted | Stopped)) == 0) // implies Running在任何给定时间,线程通常处于多个状态中,例如,如果某个线程在 Monitor.Wait 调用被阻止,
阅读全文
摘要:以下摘自:http://topic.csdn.net/u/20090418/21/90e2d95d-5c19-47b3-afe7-f704f9f86eb0.htmlCookie: ①存在于客户端(可被阻止) ②只能是文本文档 ③如果设置了期限值,则写入客户端的文件; 如果没有,它只对本窗口或其子窗口有效,其它窗口不能访问该Cookie ④在Servlet/JSP中设置的Cookie可以被同路径下或其子路径的Servlet/JSP访问,父路径不可以 ○注:这里的路径是指URL,而不是Web文件的目录 。Session: ①存在于服务器端 ②每个Session对应一个窗口,用Sessio...
阅读全文
摘要:第一个问题是C#接口和Java接口的区别和共同点:1)Java里面的接口可以有域field,比如,public static final abc = 123, 从设计上来说,这样做是不对的,因为接口是给所有实现的一个契约,以后的版本如果不需要这些field,就不能移除,因为别的公司已经使用了你发行的库,你必须遵守承诺。而C#不能有域,这点上来说C#做的比较好。2)对C#来说,接口的所有成员都定义为公共成员,并且接口不能包含常量、字段(私有数据成员)、构造函数、析构函数或任何类型的静态成员。如果为接口的成员指定任何修饰符,编译器将会产生错误。C#的接口成员包括方法,属性,和索引器的声明。为了实现
阅读全文
摘要:在《C# via .NET》中,有这样的描述CLR并不和Module模块一起工作,相反是和程序集一起工作的。程序集是一个抽象的概念。首先,程序集是一个或多个模块、资源文件的逻辑性分组,其次程序集是重用,安全性和版本控制的最小单元。上图中一些托管模块和资源(或数据)文件准备交由一个工具来处理,该工具生成单独一个PE32+文件来表示文件的逻辑性分组。实际发生的事情是,PE32+文件含有一个名为“清单”(manifest)的数据快,清单是由元数据表构成的另一种集合。这些表描述了构成程序集的文件,由程序集中的文件实现的公开导出的类型,以及与程序集关联在一起资源或数据文件。你可以使用不同的编程语言中实现
阅读全文

浙公网安备 33010602011771号