IMZRH的日志

努力成为一个有用的人

导航

随笔分类 -  Tips

摘要:这是我使用最多并觉得最有作的重构。有时我们给方法、类或是参数命名时并不能做到见名知义,这样容易引起对代码的误解中,当这种情况发生时,我们可以利用重命名重构来消除这种误解。   &#... 阅读全文

posted @ 2009-09-28 13:59 张荣华 阅读(273) 评论(0) 推荐(0) 编辑

摘要:与提升方法相似,提升字段也有一个相反的重构叫“降低字段”,降低字段是一个简单到不需要我们多说的重构,来看下面的代码:     1: public abstract cla... 阅读全文

posted @ 2009-09-28 13:54 张荣华 阅读(345) 评论(0) 推荐(0) 编辑

摘要:今天的重构指南和“提升方法”有点类似,不过要提升的不是方法,而是字段,让我们来看下面的代码: 1: public abstract class Account 2: { 3: } 4:  5: public class CheckingAccount : Account 6: { 7: private decimal _minimumCheckingBalance = 5m; 8: } ... 阅读全文

posted @ 2009-09-28 13:53 张荣华 阅读(470) 评论(0) 推荐(0) 编辑

摘要:在做项目实施时,经常需要给用户提供一个excel模板,让用户根据自己的实际情况在excel中按要求录入一个基础数据(比如部门人员数据、在线考试的试题库、设备信息等),这样做的原因一个是因为用户一般对excel比较熟悉;另一个原因是使用excel的话客户可以直接从其它数据源导入,而不是从头开始录入。当用户将处理好的电子表格交给我们后,一般实施人员会利用自己熟悉的工具将excel导入到系统数据表中,我... 阅读全文

posted @ 2009-09-20 20:19 张荣华 阅读(3910) 评论(2) 推荐(1) 编辑

摘要:昨天我们讨论了利用“提升方法”重构将多个子类要用到的方法提升到父类中,今天我们来看和“提升方法”相反的重构---降低方法,下面是待重构的代码: 1: public abstract class Animal 2: { 3: public void Bark() 4: { 5: // code to bark 6: } 7: } 8: 9: publi... 阅读全文

posted @ 2009-09-16 09:32 张荣华 阅读(430) 评论(1) 推荐(0) 编辑

摘要:提升方法的重构是指将方法提升到继承链的较高层次,该重构一般发生了当一个方法需要被更多的继承链中的多个实现使用时。 1: public abstract class Vehicle 2: { 3: // other methods 4: } 5: 6: public class Car : Vehicle 7: { 8: public void Turn(Direction direction) 9... 阅读全文

posted @ 2009-09-16 09:30 张荣华 阅读(534) 评论(1) 推荐(0) 编辑

摘要:今天的重构指南是关于移动方法的,移动方法是一个简单却容易被忽略的重构,正如它的名字所表达的意思一样,移动方法就是将方法移动到合适的位置。让我们来看下面的待重构代码: 1: public class BankAccount 2: { 3: public BankAccount(int accountAge, int creditScore, AccountInterest accountIntere... 阅读全文

posted @ 2009-09-15 17:16 张荣华 阅读(503) 评论(1) 推荐(0) 编辑

摘要:在有些情况下不将类中的集合对象暴露给用户是合理的,特别是当您为集合提供了另外的添加和删除方法时。基于这个原因,只暴露一个仅仅能遍历但不能修改的集合是明智的,下面让我们来看一段代码: 1: public class Order 2: { 3: private List<OrderLine> _orderLines; 4:  5: public IEnumerable<Or... 阅读全文

posted @ 2009-09-15 17:15 张荣华 阅读(718) 评论(1) 推荐(0) 编辑

摘要:软件开发中有一个极端的说法是“所有硬编码的字符串都应该放到资源文件中”,我个人对这个观点深表赞同,但有时限于项目的进度或是别的原因,还是习惯性的在代码中写了一些硬编码的字符串,比如像下面的这句代码: public void TestMethod() { string s = "这是一个测试字符串"; }如果在代码中包含了大量的硬编码字符串,而在项目后期每当字符串的值发生变... 阅读全文

posted @ 2009-09-11 17:12 张荣华 阅读(1475) 评论(1) 推荐(0) 编辑

摘要:for /r ./ %a in (./) do @if exist "%a\.svn" rd /s /q "%a\.svn" 阅读全文

posted @ 2009-08-28 14:48 张荣华 阅读(783) 评论(0) 推荐(0) 编辑

摘要:用ramdisk做了一个内存硬盘,然后就想把一些临时文件放在内存硬盘上,系统临时文件夹通过修改环境变量的方式设置了,ie临时文件夹也通过ie的工具菜单时行了设置,但对于常用的firefox却没有提醒设置的地方,上网搜索后,得知方法如下: 在Firefox的地址栏中输入“about:config”,这样就打开firefox的配置页,这时在页面中右击鼠标,选择“新... 阅读全文

posted @ 2009-08-28 11:07 张荣华 阅读(1884) 评论(0) 推荐(0) 编辑

摘要:前提条件: remote host和client都在一个局域网内,且必须在一个网段 remot host和client主机必须登录相同的用户,用户名必须一直 关闭防火墙或打开相应的端口,一般是4015 remote host和client的本地安全策略中的网络访问必须改为“经典,本地用户以自己的身份验证”,路径为控制面板->用户管理->本地安全设置->本地策略->安... 阅读全文

posted @ 2009-08-08 11:01 张荣华 阅读(1393) 评论(0) 推荐(0) 编辑

摘要:John Robbin 写了一篇博客,说是有人抱怨VS2008对多线程调试支持的不好,不支持他最希望看到的两个功能:1)多线程时调试时可以同时查看所有线程的堆栈信息;2)不允许设置断点只在特定的线程上触发,而不在其它的线程上触发. 对此john robbin 给出了它的答案,第一个功能vs2008本身无法实现,在vs2010中的Parallel Stacks window窗口可以实现这个功能;[其实我倒知道名叫"debuginspector"的vs addin 可以实现同时在vs2008中同时查看所有线程堆栈信息的功能.] 针对第二个功能,john robbin通过编写macro的方式给出了答案 阅读全文

posted @ 2009-07-14 09:18 张荣华 阅读(3011) 评论(0) 推荐(1) 编辑

摘要:WinDbg配置和使用基础 WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。 1. WinDbg介绍: Debugging Tools and Symbols: Getting Startedhttp://www.microsoft.com/whdc/devtools/debugging/deb... 阅读全文

posted @ 2009-07-08 17:32 张荣华 阅读(2974) 评论(0) 推荐(0) 编辑

摘要:默认情况下,打开VSS时的用户名为系统当前账号名,但一般来说VSS用户和系统用户名很少有相同的情况,所以每次登录VSS都需要改变用户名,这很烦!但是我们只需要在环境变量里做一下手脚就可以解决这个麻烦了。方法如下: 在环境变量-》用户变量下建立一个名为SSUSER的变量,值为VSS用户名(如user1)。然后就可以了。 阅读全文

posted @ 2009-07-06 16:00 张荣华 阅读(763) 评论(0) 推荐(0) 编辑

摘要:最近做的一个winform类型的项目中需要屏蔽系统热键,在网上搜索了一下,基本上都是调用api来进行hook操作,下面的代码就可以完成功能 阅读全文

posted @ 2009-06-19 20:31 张荣华 阅读(5881) 评论(10) 推荐(1) 编辑

摘要:为了美好窗体的样式,项目的服务器端主窗体继承了DevComponents DotNetBar2的Office2007Form类,但在随后的运行过程中遇到了一个问题,就是在服务器端运行较长时间会,会弹出一个警告框,但却不影响服务器端的运行。警告框的具体信息如下:************** Exception Text **************System.ComponentModel.Win3... 阅读全文

posted @ 2009-06-17 22:09 张荣华 阅读(5721) 评论(0) 推荐(0) 编辑

摘要:在windows server 2003 sp2上运行.net的程序时报如标题所描述的错误解决方法如下:开始->运行->cmd ->输入sc config spooler depend= RPCSS 阅读全文

posted @ 2009-05-21 20:01 张荣华 阅读(5265) 评论(0) 推荐(0) 编辑

摘要:做好一个.net 2.0的winform程序,将release目录下的文件直接copy到客户的机器上进行测试,报如下的错误: EventType clr20r3, P1 wat.pms.caijiservice.exe, P2 1.0.0.0, P3 4a1361e0, P4 wat.pms.caijiservice, P5 1.0.0.0, P6 4a1361e0, P7 3, P8 17, P... 阅读全文

posted @ 2009-05-21 19:56 张荣华 阅读(12067) 评论(1) 推荐(0) 编辑

摘要:问题:如题,在工具栏中找不到“解决方案配置”按钮,无法选择是以debug模块还是以release模块进行生成操作。解决方法:在工具栏中点击“添加/删除按钮”--》选择“自定义”--》然后将图中标注的两个命令拖动到工具栏中就可以了 阅读全文

posted @ 2009-05-13 20:19 张荣华 阅读(3468) 评论(1) 推荐(0) 编辑