摘要:
这几年看了不少书,大部分是自掏腰包,看一本好书是享受,我很喜欢这种感觉。这些是我这几年看书的一些心得,对于一些新手来说,可能有点帮助。这几年一直在走技术路线,所以看的大部分都是技术方面的书籍,而且还偏向C#,有的同学可能会说看完这么多书,你记得多少,事实上,我也不知道我记得多少,我唯一知道的是我在看书的时候,我看懂了,我明白了,我当时记住了,就这么简单,所以不需要记那么多,只要记住你曾经看过,曾经思考过,这本书曾经让你明白过一些,这就够了,这就是我对书的理解。2008年C#2005 & .net 3.0高级编程 这本书是我第一本看的书,1500多页,很详细,非常好,也很基础,适合入门级 阅读全文
摘要:
以前写的多线程系列,现在加上索引: 深入浅出多线程 深入浅出多线程系列之一:简单的Thread 深入浅出多线程系列之二:关于Thread的那些事 深入浅出多线程系列之三:线程池 深入浅出多线程系列之四:简单的同步 lock 深入浅出多线程系列之五:一些同步构造(上篇) 深入浅出多线程系列之五:一些同步构造(下篇) 深入浅出多线程系列之六:事件驱动异步模式(EAP,WebClient,BackgroundWorker) 深入浅出多线程系列之七:4种定时器 深入浅出多线程系列之八:内存栅栏和volatile 关键字 ... 阅读全文
摘要:
介绍: 过去我常常像是否有一个帮助授权的软件,它可以非常简单的创建license,并且非常容易的验证license。 这是一个非常普通和公共的功能,但是我没有找到合适的开源软件,大部分开源软件都比较复杂,并且有太多我不需要的功能。 所以我创建了这个项目,希望可以让授权的流程变的简单。 使用代码: E 阅读全文
摘要:
相比较log4net, 我更喜欢NLog, 因为NLog 更简单, 而且配置选项也更加的清楚,可能是因为log4net 是从log4j 移植过来的一个原因吧,总感觉有很多的java 成分在。要使用NLog 首先也需要安装NLog Package。安装好之后,添加一个NLog.config 文件,代码... 阅读全文
摘要:
log4net 是.net 的一款日志记录框架。它提供了很多的方法来帮助记录日志:使用起来也比较方便:选中项目,点击右键,然后选择 Manage NuGet Packages...安装log4net package。安装好Package 之后,需要用配置文件来配置log4net.在项目中添加log4... 阅读全文
摘要:
对于一个应用程序而言,Log 必不可少.在.net 里面,最简单的方式就是用Console 来输出 信息了,例如下面的例子: public class Program { public static void Main(string[] args) { ... 阅读全文
摘要:
很久没发表过文章了,今天看到一篇文章 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏(C#解法)看到LZ的2B青年代码,实在是惨不忍睹,故写篇文章来探讨下这类问题的一般思考。原题:FizzBuzzWhizz 你是一名体育老师,在某次课距离下课还有五分钟时,你决... 阅读全文
摘要:
程序员经常要实现拖动控件的功能,一般实现这个功能,都要注册事件,然后写MouseMove的代码,Point point = Point.Empty;control.MouseDown += control_MouseDown;control.MouseMove += control_MouseMove; control.MouseLeave += control_MouseLeave;如果程序的很多地方都有这个逻辑的话,那么代码就会有一大部分的重复了。在网上如果你搜索控件拖动的话,大部分代码都是上面的代码,重复的逻辑,重复的故事。于是我想,能不能写一个帮助类,当需要拖动的时候,只要调用Enab 阅读全文
摘要:
很多时候,我们会写下面的这段代码: private void button1_Click(object sender, EventArgs e){ Cursor cursor = Cursor.Current; this.Cursor = Cursors.WaitCursor; LongTimeMethod(); this.Cursor = cursor;}priv... 阅读全文
摘要:
有很多时候,我们需要创建Windows Service。 这篇文章可以算是一个入门指南吧,希望对初学者有帮助.要创建Windows Service, 首先选择Windows服务项目,如下图:这里我想创建一个Windows服务,定时的执行一些任务。public partial class Service1 : ServiceBase{ public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { } protecte... 阅读全文
摘要:
很多人都知道事件,一般定义一个事件是这样的写法public event EventHandler OneEvent;但是如果这样定义的话就需要进行null判断了于是很多人这样定义事件:public event EventHandler OneEventNeverNull = (o, e) => { };这样就不需要判断null了。上面的事件你可以把它认为是实例事件. 我们这里要谈的是静态事件(static event).静态事件和实例事件的区别是加了个static 关键字,可别小看这个关键字,区别大了。首先静态事件的定义为:public static event EventHandler 阅读全文
摘要:
很多人都知道SQL注入,也知道SQL参数化查询可以防止SQL注入,可为什么能防止注入却并不是很多人都知道的。 本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。 首先:我们要了解SQL收到一个指令后所做的事情: 具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理 在这里,我简单的表示为: 收到指令 -> 编译SQL生成执行计划 -... 阅读全文