摘要:在公司开发WinForm项目时,发现公司自主研发的textbox控件非常强大,可以实现"只能输入数字"、"只能输入字母"和"只能输入数字和字母"的三种输入限制,这样就可以精确控制用户输入的内容范围,让"用户永远没有办法输入限定的内容范围之外的其他内容",也就是"用户即使想犯错误也没有机会",这种限制控件输入的方式给了我很大的启发,如果在web项目中也能做到这样的精确控制,那么就可以避免因为一些非法输入而造成系统出错,既然WinForm里面可以实现这样的控件,那么web项目里面也应该有办法去实现类
阅读全文
摘要:今天在使用如下的方式遍历HashMap里面的元素时1 for (Entry entry : hashMap.entrySet()) {2 MessageFormat.format("{0}={1}",entry.getKey(),entry.getValue());3 } 发现得到的元素不是按照之前加入HashMap的顺序输出的,这个问题我之前倒是没有注意过,后来上网查了一下原因,发现是:HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。甚至可以rehash()重新散列,来获得更利于
阅读全文
摘要:最近开发公司的项目,一直找不到合适的正则表达式可以判断一个字符串是否可以转成日期,今天发现可以采用SimpleDateFormat类的parse方法进行判断,如果转换不成功,就会出现异常,具体代码如下: 1 public static boolean isValidDate(String str) { 2 boolean convertSuccess=true; 3 // 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写; 4 SimpleDateFormat format = new SimpleDateFormat("yyyy...
阅读全文
摘要:一、正则表达式去除代码行号作为开发人员,我们经常从网上复制一些代码,有些时候复制的代码前面是带有行号,如:MyEclipse本身自带有查找替换功能,并且支持正则表达式替换,使用正则替换就可以很容易去除这些行号使用快捷键“ctrl+F”打开MyEclipse的查找替换功能,如下图所示:这样就可以把代码...
阅读全文
摘要:有时候我们从网上copy别人的代码下来,对于某些不熟悉的类,需要添加对某个类的引用时,如何快速找出某个类所在的命名空间呢例如有如下的一段代码:现在要添加ConfigurationElement类的引用,那么首先要找出ConfigurationElement类所在的命名空间操作步骤如下图所示:找到ConfigurationElement类所在的命名空间后,就可以添加ConfigurationElement类的引用了
阅读全文
摘要:IDisposable概述 GC(垃圾收集器)只能回收托管(Managed)内存资源,对于数据库连接、文件句柄、Socket连接等这些资源(非托管资源,UnManaged)就无能为例,必须程序员自己控制资源的回收。非托管资源:SqlConnection、FileStream等。 对于使用非内存资源的类,完全可以自己定义一个销毁资源的方法来供程序员回收,.net推荐实现IDisposable接口(为了规范非托管资源的回收),在Dispose方法中进行回收。 实现了IDisposable接口的对象都可以使用using进行资源管理。using就是帮我们做了:1 FileStream fs = ...
阅读全文
摘要:对象序列化“序列化是将一个对象保存到存储介质上或者将对象进行转换使之能够在网络上传送的行为”。通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是从文件或者数据库中取出数据再转化成原来的对象使用。对象是稍纵即逝的,不仅程序重启、操作系统重启会造成对象的消失,就是退出函数范围等都可能造成对象的消失,序列化/反序列化就是为了保持对象的持久化。就像用DV录像(序列化)和用播放器播放(反序列化)一样。能对一个类进行序列化的条件是:该类的任何基类可序列化;该类应用了Serializable特性。在.net framework中,有三种序列化机制:二进制、XML和简单对象访问协
阅读全文
摘要:一、深入理解字符串的不可变特性string可以看做是char的只读数组。charc=s[1]C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用newstring(char[])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。常见疑问:“谁说字符串不可变?string s1 = "abc"
阅读全文
摘要:垃圾收集器概述 大排档和学校食堂。一个是别人帮你收拾盘子,一个是自己收拾盘子。 垃圾收集GC(Garbage Collection)。内存的分配、回收不需要程序员操心,程序员只要需要的时候new就可以,用完了不用管,有人帮你清除不用的内存。这个人就是“垃圾收集器”。.Net程序员一般不用像C++程序员那样处理内存的申请和回收,是因为有GC。GC优点:程序员不用关心内存的申请和回收,缺点:不用的内存不能立即得到回收(GC并不会实时去回收不用的内存,而是找时机才回收)。 当对象一定不再有用的时候GC就可以将对象回收了(悲观!)。判断一个对象是否一定不再有用的标准就是没有任何的变量指向它。当一...
阅读全文
摘要:结构体结构体和类的区别:结构体是值类型,类是引用类型结构体非常类似于类,但是值类型(拷贝传递),不能被继承Int32、DateTime等都是结构体,从ValueType继承,值类型。结构体测试程序: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Drawing; 6 namespace 结构体 7 { 8 class Program 9 {10 static void Main(string[...
阅读全文