摘要:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你在本文中看到自己的身影。 从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。 我会持续更新这些经验,我可能还会有更多的感想,但就我这20年来看,我想下面这个列表中基本不需要增添额外的东西了。下面就
阅读全文
摘要:所谓谚语,就是用言简意赅、通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情。也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己。 1. 无风不起浪别紧张,这也许只是一场消防演习 代码设计是否糟糕,从某些地方就可以看出来。比如:a. 超大类或超大函数b. 大片被注释的代码c. 逻辑重复d. If/else嵌套过深 程序员们通常称它们作代码异味(Code Smell),但是就我个人认为“代码警报”这个名字更为合适一些,因为它有更高的紧迫感的含义。根本问题处理不当,终将引火烧身。 译注:Code Smell中文译名一般为“代码异味”...
阅读全文
摘要:1.匹配中文字符的正则表达式: [\u4e00-\u9fa5]2.匹配双字节字符(包括汉字在内):[^\x00-\xff]3.匹配空行的正则表达式:\n[\s| ]*\r4.匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 5.匹配首尾空格的正则表达式:(^\s*)|(\s*$)6.匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g 或\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\7.匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+
阅读全文
摘要:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。 我自己发现的问题是有相关服务没开,把SQL相关服务开了之后,问题就消失了。 在运行输入:services.msc 找到sql的几个服务,看哪个没开的,设置为自动,然后启动,就搞掂了。我想我之所以遇到这个问题,是因为我上次优化过度了。所以把一些服务设置为手动甚至禁止了。 还有一个问题需要注意到就是:是否该数据库已经存在,或者该数据库存在某些问题。http://hi.baidu.com/oneshotonekill/blog/item/2c43a03dc.
阅读全文
摘要:程序员的九重境界,你是第几重转载自网络第一重: 在哪本电脑杂志上看见软件工程师这个职业介绍,或者走在大街上看见某某软件培训机构鼓吹培训完就能年薪10万的广告,有些羡慕那些编程序的,自己有些蠢蠢欲动。第二重: 用控制台或者说SDK之类的东西写了一个“HELLO WORLD!”,感觉编程这个东西,太简单没难度。第三重: 学会了简单的使用某某工具例如VC,知道怎么利用工具创建对话框之类的东西了,认为自己已经有了“扎实”的基础,出去找工作四面碰壁之后感叹人心不古世态炎凉。第四重: 以极低的要求找到工作,突然发现自己不会的实在是太多太多,不求甚解是无奈之举。这个阶段写代码写完之后主要是试,试的标准:..
阅读全文
摘要:View Code 1 private void txtJustNumber_KeyPress(object sender, KeyPressEventArgs e)2 {3 if (e.KeyChar != 8 && !char.IsDigit(e.KeyChar) && e.KeyChar != 13)4 {5 MessageBox.Show("只能输入数字");6 e.Handled = true;7 }8 }
阅读全文
摘要:View Code 1 private int FindPlace = 0; //文本查找位置,缺省为文本起点 2 private void btnStart_Click(object sender, EventArgs e) 3 { 4 if (txtToSearch.Text != "") //当查找内容不为空时,进行查找 5 { 6 //获得Form1窗体的引用 7 MainForm mainForm = (MainForm)this.Owner; 8 //如果主窗体文本内容不为空,进行查找 9 if (mainForm.rtbData.Text.Length >
阅读全文
摘要:SerialPort 串口的参数:View Code public class KeySerialConfig { public string PortName { get; set; } public int BaudRate { get; set; } public int DataBits { get; set; } public StopBits SerialStopBits { get; set; } public Parity SerialParity { get; set; } }SerialPort 通信协议类View Code 1 public class KeyProtoc
阅读全文
摘要:View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Windows.Forms; 5 6 namespace MineSweeper 7 { 8 /// <summary> 9 /// 状态 10 /// </summary> 11 public enum MineState 12 { 13 /// <summary> 14 /// 正常 15 /// </summary> 16 Normal = 1,
阅读全文
摘要:1.下载 IrisSkin2.dll 及其皮肤素材(相应的.ssk文件)。地址网上很多(如:http://download.csdn.net/source/1744355)2.把IrisSkin2.dll文件添加到\bin\Debug文件夹 或者 \bin\Release文件夹 (对应)中。3.把IrisSkin2.dll文件添加到当前项目引用4.把IrisSkin2.dll文件添加到VS的工具箱: 右键(添加选项卡)->选择项->浏览找到IrisSkin2.dll文件->确定。5.把工具箱中新添加的SkinEngine控件拖到当前项目的设计界面,会出现在下方。6.把皮肤目录
阅读全文
摘要:View Code 1 using System; 2 using System.Diagnostics; 3 namespace TraceFunctions 4 { 5 public class Trace 6 { 7 [Conditional("DEBUG")] //条件属性 8 public static void Message(string traceMessage) 9 { 10 Console.WriteLine("[TRACE] - " + traceMessage); 11 } 12 } 13 }14 15 using System;
阅读全文
摘要:View Code 1 using System; 2 using System.Windows.Forms; 3 using System.Runtime.InteropServices; 4 using System.Threading; 5 6 7 namespace OneInstanceOnlyMethodOne 8 { 9 static class Program10 {11 12 #region DllImportAttribute13 14 [DllImport("user32.dll", CharSet = CharSet.Unicode)]15 stat
阅读全文
摘要:(查表法)CRC检验码的计算过程(1)将上次计算出的CRC校验码右移一个字节;(2)将移出的这个字节与新的要校验的字节进行XOR 运算;(3)用运算出的值在预先生成码表中进行索引,获取对应的值(称为余式);(4)用获取的值与第(1)步右移后的值进行XOR 运算;(5)如果要校验的数据已经处理完,则第(4)步的结果就是最终的CRC校验码。如果还有数据 要进行处理,则再转到第(1)步运行。 public static byte GetCRC8(byte[] data, int startIndex, int dataLength) { if (data == null) throw new Arg
阅读全文
摘要:有4个数据表A,B,C,D 将4个表的数据批量复制到表E中,所以就写了4条insert的sql语句,使用Sqltransaction类,并且当任何一个insert执行错误,所有其他的插入动作就回滚。string sql1, sql2, sql3, sql4;//这四个sql语句是插入sql语句; SqlConnection con = new SqlConnection();//这里要添加连接字符串 con.Open; SqlTransaction tran = con.BeginTransaction(); SqlCommand com = new SqlCommand(); com.Con
阅读全文
摘要:http://www.flexrain.cn/flex/sqlite-start.htmlhttp://www.cnblogs.com/acen/archive/2009/03/11/1409027.html
阅读全文
摘要:1)BCD码(Binary Coded Decimal ——二到十进制编码) 计算机内部多采用二进制表示和处理数值数据,因此在计算机输入和输出数据时,就要进行进制的转换处理。用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码,即BCD代码。 BCD码编码方法很多,通常采用8421编码,这种编码方法最自然简单。其方法使用四位二进制数表示一位十进制数。以下为对应的8421码: 十进制数 8421码 0 00001 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 256(D)=0000 0010 0101 0
阅读全文
摘要:extern 修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 属性一起使用。在这种情况下,还必须将方法声明为 static。下面的代码示例演示如何使用 DllImportAttribute 属性(EntryPoint 属性)导入 Win32 MessageBox 函数,并改名为NewMessageBox。 然后,代码示例将调用导入的方法。 [DllImport("user32.dll", CharSet = CharSet.Unicode,EntryPoint="MessageBo
阅读全文
摘要:namespace MEDAdapter{ [global::System.Serializable] public class ServiceConfigException : Exception { // // For guidelines regarding the creation of new exception types, see // http://msdn.microsoft.com/library/default.asp?url=/library/en- us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp //
阅读全文
摘要:最近有人问到 ref 关键字的正确用法,下面我们来举例说明。另外在开始我们的例子之前,需要提前说明几点:C# 中的数据有两种类型:引用类型(reference types)和值类型(value types)。 简单类型(包括int, long, double等)和结构(structs)都是值类型,而其他的类都是引用类型。 简单类型在传值的时候会做复制操作,而引用类型只是传递引用,就像 C++ 中的指针一样。 在 C# 中,structs 和类有很大的区别。其中最大的区别(我个人觉得,同时也是容易忽略的一个地方)可能就是它是值类型,而不是引用类型。 下面这段代码是 MSDN 中的例子:// c.
阅读全文
摘要:摘抄自《OOD 启思录》--Arthur J.Riel 著 鲍志云 译 “你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。” ----------Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部。p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15 (3)尽量减少类的协议中的消息。p16 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。 p16 (5)不要把实现细节(例如放置共用代码的私有函数)放到类
阅读全文