随笔分类 - [00-4]学习笔记
摘要:该随笔的思想原点,应该算是在两三年前了。当时和一前同事聊天、不知怎得就聊到了Http访问。 一、我记得他和我说过的第一句话,大概是:有没有已经封装好的、比较强大的HttpUtil。也可能是受业务的影响(接口对内)、我当时接触到的Http访问,大多比较“规范”,至少有一个接口约束在约定着某些东西...
阅读全文
摘要:注:该随笔受启发于《重构与模式》 第七章 第7.6小节用Command替换条件调度程序 。对于Command不做过多解释,这里我找了两个例子、供部分园友参阅:Command例子1Command例子2。条件调度程序:我对这个名词的理解为,它是相对简单的选择结构 与 相对独立的业务逻辑的结合体。话不是很...
阅读全文
摘要:附源码,没有附测试demo之前的工具类:C# 给某个方法设定执行超时时间 /// /// 超时工具 /// public class TimeoutTools : IDisposable { private System.Windows.Forms.T...
阅读全文
摘要:一、64位系统中的注册表以 LocalMachine 中的启动项为例: 64位应用的注册表位置还是在:SOFTWARE\Microsoft\Windows\CurrentVersion\Run而 32位应用的注册表位置却是在:SOFTWARE\Wow6432Node\Microsoft\Windo...
阅读全文
摘要:今天一打开博客,看到左上角的园龄5年,目光有些恍然,昔日作为学生上课的情景、已经慢慢变的模糊。是啊、毕业已经3年有余,时光不再来...一、原码和补码在步入正文说类型转换之前,先做一个小铺垫,了解一下原码和补码。[注:由于同一个数字在用不同位数的原码或补码表示时、结果不同,所以如无特殊说明、该小节下出...
阅读全文
摘要:一、运算符优先级前两天我在园子的首页看到一篇随笔,随笔地址已经找不到了(着实有点抱歉),不过其中的一个代码片段还是记得一二,大概如下: Thread t = null; string message = "I'm ..." + t == null ? "A...
阅读全文
摘要:上一篇随笔.NET 扩展方法 (一)已经对 扩展方法有了大致的介绍,这篇算是一个补充,让我们来看一下扩展方法的几个细节:一、扩展方法具有继承性当使用扩展方法扩展一个类型的时候,其也扩展了派生类,所以上一篇的遗留问题“如果给object添加一个扩展方法会出现什么效果呢?” 的答案就是——所有类型都将扩...
阅读全文
摘要:我还记得刚刚学编程的时候,老师经常会提到一句话:注意空指针。所以经常在某些“入口”位置,进行代码校验,空指针的判断就是其中的一项工作。string类型作为常用的数据类型,它在项目中出现的机率极高,所以往往会有如下的代码片段: // str 是 string 类型 ...
阅读全文
摘要:该随笔受启发于《CLR Via C#(第三版)》第四章4.4运行时的相互联系一、内存分配的几个区域1、线程栈局部变量的值类型和 局部变量中引用类型的指针(或称引用)会被分配到该区域上(引用类型的一部分内存被分配到该区域内)。该区域由系统管控,不受垃圾收集器的控制。当所在方法执行完毕后,局部变量会自动...
阅读全文
摘要:C#代码: 利用扩展方法,扩展枚举功能using System;using System.Collections.Generic;using System.Text;using System.Linq;namespace EnumExtension{ // Define an extensio...
阅读全文
摘要:首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一个map中,每个线程都有这样一个map,执行ThreadLocal.
阅读全文
摘要:代码重构不用愁,儿歌帮你来解忧。代码重构忌浮躁,微小步伐慢慢调;代码重构需独立,时时刻刻都需要;别扭代码先重构,趋向模式架构好。命名去重长函数,大类长参和两式;依恋情节数据团,简化条件表达式。良好命名很重要,简明达意效果好。重复代码有妙招,提取函数是技巧;平行子类遇重复,共有代码基类放;相似过程情况...
阅读全文
摘要:虽然这篇post的标题是新手常犯的错误,实际上很多有经验的程序员也经常犯这些错误,我整理了一下,就当是笔记。1、遍历List的错误,比如如下代码:List strList =newListfor(int i =0; i strList =newListfor(int i =0; i<strList.Count; i++){ strList.RemoveAt(i); i-=1;}这样就可以完全删除List中的元素。2、关于C#常量的错误比如你写了一个类库,在里面定义了如下常量:public const String str="First Version";并且在另一个程
阅读全文
摘要:获取默认打印机: 常用的几个WMI: 主板:Win32_BaseBoard http://msdn.microsoft.com/en-us/library/aa394072(VS.85).aspx CPU: Win32_Processor http://msdn.microsoft.com/en-u
阅读全文
摘要:private void button7_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); g.FillRectangle(Brushes.Whi...
阅读全文
摘要:初学 Spring MVC , 感觉对于 @ModelAttribute 和 @SessionAttributes 是如何被Spring MVC处理的,这一流程不是很清楚, 经过Google资料,有了一个较为详细的了解,在此总结一下。 1)Spring MVC 在调用处理方法之前,在请求线程中自动的
阅读全文
摘要:当一个类的构造函数有多个重载版本时,建议:1)将默认无参构造函数访问权限设置为private2)利用public static方法去替代直接 new 对象。该方式明显优点:1)可利用方法名明确创建的对象含义,即创建什么样的对象,需要使用什么样的方法是明确的,且不必了解内部细节,减少出错概率。2)可解...
阅读全文
摘要:呵呵,由于正则不熟,所以另谋出路——利用XML去解析html。要想将抓取到的数据(直接抓取到的是byte[]) 转为XML文档(即XMLDocument对象),有两个要点:一、判断编码(http头 charset 在某些网站上是不准确的)我利用的是 第三方的一开源项目去判断编码的,效果还不错:链接。二、将html转为XHTML我利用的是 : SgmlReaderDll.dll ,微软提供的,虽然不是100%的准确,但是足以满足 轻量级的商业需求 。核心代码如下: public class XHtmlTools { private const string RegBod...
阅读全文
摘要:用 HttpWebRequest Post方法模拟提交Form表单数据时,需要设置ContentType为"application/x-www-form-urlencoded"。
阅读全文
摘要:XPath 和 jQuery所支持的选择器有一定的相似之处,借助jQuery所支持的选择器去理解XPath会更容易一些。选取节点XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.选取当前节点。..选取当前节点的父节点。@选取属性。实例在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:路径表达式结果bookstore选取 bookstore 元素的所有子节点。/bookstore选
阅读全文