蓄势待发,丰硕的公用类库积累,助你急忙开始展览系统开发(九)—-各类常用扶助类

by admin on 2019年4月2日

俗话说,三个英雄拾三个帮,人多势众等都认证贰个道理,有愈多的财富,更丰硕的累积,都是助你走向成功,走向极限的牵重力。

本篇的公用类库的牵线核心是程序支付中常用到的种种格式转换也许数额表达的扶助类,内容范围或然相比较广泛,包涵XML操作、种类化及反体系化操作、命令行解析,枚举对象操作,数据格式验证等等,可是都是博学多才、好用的帮带类。

本篇继续一而再整治优化已部分共用类库,并接二连三公布随笔介绍公用类库的接口方法以及详细使用操作,力求给协调继续优化,积攒更丰盛的公用类库财富,加深精晓的同时,也给大家表现公用类库好的地方。

蓄势待发,丰裕的公用类库积累,助你飞速开展系统开发(8)—-非对称加密、BASE64加密、MD伍等常用加密处理 蓄势待发,丰盛的公用类库积累,助你快速开始展览系统开发(7)—–声音播放、硬件新闻、键盘模拟及钩子、鼠标模拟及钩子等设施相关 
蓄势待发,丰裕的公用类库积累,助你飞速开始展览系统开发(陆)—-全屏截图、图标获取、图片打字与印刷、页面预览截屏、图片复杂操作等 蓄势待发,丰盛的公用类库积累,助你火速开展系统开发(五)—-热键、多线程、窗体动画冻结等窗体操作 蓄势待发,丰裕的公用类库积累,助你神速开始展览系统开发(四)—-CSV、Excel、INI文件、独立存款和储蓄等文件有关 蓄势待发,充裕的公用类库积累,助你火速开始展览系统开发(3)—-数据库相关操作 蓄势待发,丰盛的公用类库积累,助你急迅开始展览系统开发(二)—-常用操作 蓄势待发,丰盛的公用类库积累,助你飞速开始展览系统开发(一)—-开篇总括

 

一、种类化、反连串化、节点等操作类协助类 XmlHelper。  

落到实处际效果益

壹)本帮衬类首如果用来方便完成XML体系化、反种类化、节点等操作。 

二)系列化是指一个目的的实例能够被保留,保存成三个2进制串恐怕XML等格式字符串。反体系化那是从这几个剧情中还原为3个目的实例的操作。 

三)要落到实处目的的体系化,首先要力保该目的足以类别化。而且,系列化只是将对象的性质实行有效的保留,对于指标的某些措施则无从兑现连串化的。达成2个类可体系化的最便捷的不2秘籍便是充实Serializable属性标记类。 

四)DOM(文书档案对象模型)把层次中的每叁个对象都称之为节点(NODE),以HTML超文本标记语言为例:整个文档的二个根正是<html>,在DOM中得以选拔

document.documentElement来做客它,它就是漫天节点树的根节点(ROOT)。 

兑现代码

壹)帮衬类提供的办法接口如下所示: 

/// <summary>    
/// 构造函数    
/// </summary>    
/// <param name=”XmlFile”>XML文件路径</param>    
public XmlHelper(string XmlFile)   
  
#region 静态方法    
   
/// <summary>    
/// 2进制体系化    
/// </summary>    
/// <param name=”path”>文件路径</param>    
/// <param name=”obj”>对象实例</param>    
/// <returns></returns>    
public static bool Serialize(string path, object obj)    
   
/// <summary>    
/// XML序列化    
/// </summary>    
/// <param name=”path”>文件路径</param>    
/// <param name=”obj”>对象实例</param>    
/// <returns></returns>    
public static bool XmlSerialize(string path, object obj, Type type)    
   
/// <summary>    
/// 2进制反类别化    
/// </summary>    
/// <param name=”path”>文件路径</param>    
/// <returns></returns>    
public static object Deserialize(string path)    
   
/// <summary>    
/// XML反种类化    
/// </summary>    
/// <param name=”path”>文件路径</param>    
/// <param name=”type”>对象类型</param>    
/// <returns></returns>    
public static object XmlDeserialize(string path, Type type)   
  
#endregion   
  
#region 公用方法    
   
/// <summary>    
/// 获取钦定节点上边包车型地铁XML子节点    
/// </summary>    
/// <param name=”XmlPathNode”>XML节点</param>    
/// <returns></returns>    
public XmlNodeList Read(string XmlPathNode)    
   
/// <summary>    
/// 读取节点属性内容    
/// </summary>    
/// <param name=”XmlPathNode”>XML节点</param>    
/// <param name=”Attrib”>节点属性</param>    
/// <returns></returns>    
public string Read(string XmlPathNode, string Attrib)    
   
/// <summary>    
/// 获取成分节点指标    
/// </summary>    
/// <param name=”XmlPathNode”>XML节点</param>    
/// <param name=”elementName”>成分节点名称</param>    
/// <returns></returns>    
public XmlElement GetElement(string XmlPathNode, string elementName)    
   
/// <summary>    
/// 获取成分节点的值    
/// </summary>    
/// <param name=”XmlPathNode”>XML节点</param>    
/// <param name=”elementName”>成分节点名称</param>    
/// <returns></returns>    
public string GetElementData(string XmlPathNode, string elementName)    
   
/// <summary>    
/// 获取节点下的DataSet    
/// </summary>    
/// <param name=”XmlPathNode”>XML节点</param>    
/// <returns></returns>    
public DataSet GetData(string XmlPathNode)    
   
/// <summary>    
/// 替换某节点的剧情    
/// </summary>    
/// <param name=”XmlPathNode”>XML节点</param>    
/// <param name=”Content”>节点内容</param>    
public void Replace(string XmlPathNode, string Content)    
   
/// <summary>    
/// 删除节点    
/// </summary>    
/// <param name=”Node”>节点</param>    
public void Delete(string Node)    
   
/// <summary>    
/// 插入一节点和此节点的一子节点    
/// </summary>    
/// <param name=”MainNode”></param>    
/// <param name=”ChildNode”></param>    
/// <param name=”Element”></param>    
/// <param name=”Content”></param>    
public void InsertNode(string MainNode, string ChildNode, string Element, string Content)    
   
/// <summary>    
/// 插入三个节点带一性格质     
/// </summary>    
/// <param name=”MainNode”>指定的XML节点</param>    
/// <param name=”Element”>成分名称</param>    
/// <param name=”Attrib”>属性名称</param>    
/// <param name=”AttribContent”>属性值</param>    
/// <param name=”Content”>内容</param>    
public void InsertElement(string MainNode, string Element, string Attrib, string AttribContent, string Content)    
   
/// <summary>    
/// 插入XML元素    
/// </summary>    
/// <param name=”MainNode”>指定的XML节点</param>    
/// <param name=”Element”>成分名称</param>    
/// <param name=”Content”>内容</param>    
public void InsertElement(string MainNode, string Element, string Content)    
   
/// <summary>    
/// 保存XML文档    
/// </summary>    

public void Save()   

二)协助类XmlHelper的选择例子代码如下所示 

 SearchInfo searchInfo = new SearchInfo();    

searchInfo.FieldName = “TestFeild”;    
searchInfo.FieldValue = “TestValue”;    
   
string file = @”C:\searchInfo.xml”;    
XmlHelper.XmlSerialize(file, searchInfo, typeof(SearchInfo));    
   
SearchInfo info2FromXml = XmlHelper.XmlDeserialize(file, typeof(SearchInfo)) as SearchInfo;    
Console.WriteLine(“{0} : {0}”, info2FromXml.FieldName, info2FromXml.FieldValue);
 

XML体系化文件如下所示,并能通过该文件反种类化到对象实例中。 

 

3)支持类XmlHelper操作节点的例子代码如下所示。 

//bookstore.xml文件内容    
/*   
<?xml version=”1.0″ encoding=”gb2312″?>   
<bookstore>   
<book genre=”fantasy” ISBN=”2-3631-4″>   
    <title>Oberon’s Legacy</title>   
    <author>Corets, Eva</author>   
    <price>5.95</price>   
</book>   
</bookstore>   
*/   
file = @”c:\bookstore.xml”;    
XmlHelper helper = new XmlHelper(file);    
string value = helper.Read(“bookstore/book”, “genre”);    
Console.WriteLine(value);//fantasy    
   
value = helper.Read(“bookstore/book”, “ISBN”);    
Console.WriteLine(value);//2-3631-4    
   
value = helper.GetElementData(“bookstore/book”, “title”);    
Console.WriteLine(value);//Oberon’s Legacy       
   
XmlElement element = helper.GetElement(“bookstore/book”, “title”);    
element.InnerText = “伍华聪”;    
   
DataSet ds = helper.GetData(“bookstore/book”);    

ds.WriteXml(@”C:\ds.xml”);   

二、连串化和反系列化操作帮助类 Serializer。  

贯彻效益

1)本帮助类主倘诺用来方便完成体系化合反连串化操作。 

二)系列化是指三个对象的实例能够被保留,保存成一个2进制串或然XML等格式字符串。反体系化那是从这几个内容中还原为三个对象实例的操作。 

本类别化和反体系化操作,提供二进制、XML格式、Soap格式等两种措施的操作,方便对目的实例实行各个类别化操作依旧对种种格式文件的反种类化操作。 

 

完结代码

壹)支持类提供的法子接口如下所示: 

#region 种种格式的体系化操作    
/// <summary>    
/// 系列化对象到贰进制字节数组    
/// </summary>    
/// <param name=”obj”>待体系化的目的</param>    
/// <returns></returns>    
public static byte[] SerializeToBinary(object obj)    
   
/// <summary>    
/// 类别化对象到内定的文书中    
/// </summary>    
/// <param name=”obj”>待种类化的指标</param>    
/// <param name=”path”>文件路径</param>    
/// <param name=”mode”>文件打开药格局</param>    
public static void SerializeToBinary(object obj, string path, FileMode mode)    
   
/// <summary>    
/// 类别号对象到文件中,成立五个新文件    
/// </summary>    
/// <param name=”obj”>待体系化的指标</param>    
/// <param name=”path”>文件路径</param>    
public static void SerializeToBinary(object obj, string path)    
   
/// <summary>    
/// 种类化对象到Soap字符串中    
/// </summary>    
/// <param name=”obj”>待类别化的指标</param>    
/// <returns></returns>    
public static string SerializeToSoap(object obj)    
   
/// <summary>    
/// 连串化对象到Soap字符串中,并保存到文件    
/// </summary>    
/// <param name=”obj”>待系列化的指标</param>    
/// <param name=”path”>文件路径</param>    
/// <param name=”mode”>文件打开药情势</param>    
public static void SerializeToSoap(object obj, string path, FileMode mode)    
   
/// <summary>    
/// 类别化对象到Soap字符串中,并保存到文件    
/// </summary>    
/// <param name=”obj”>待种类化的目的</param>    
/// <param name=”path”>文件路径</param>    
public static void SerializeToSoap(object obj, string path)    
   
/// <summary>    
/// 连串化对象到XML字符串中    
/// </summary>    
/// <param name=”obj”>待系列化的指标</param>    
/// <returns></returns>    
public static string SerializeToXml(object obj)    
   
/// <summary>    
/// 连串化对象到XML字符串,并保留到文件中    
/// </summary>    
/// <param name=”obj”>待体系化的目的</param>    
/// <param name=”path”>文件路径</param>    
/// <param name=”mode”>文件打开药格局</param>    
public static void SerializeToXmlFile(object obj, string path, FileMode mode)    
   
/// <summary>    
/// 体系化对象到XML字符串,并保留到文件中    
/// </summary>    
/// <param name=”obj”>待体系化的指标</param>    
/// <param name=”path”>文件路径</param>    
public static void SerializeToXmlFile(object obj, string path)   
  
#endregion    
   
   
/// <summary>    
/// 从钦点的公文中反系列化到现实的指标    
/// </summary>    
/// <param name=”type”>对象的门类</param>    
/// <param name=”path”>文件路径</param>    
/// <returns></returns>    
public static object DeserializeFromXmlFile(Type type, string path)    
   
/// <summary>    
/// 从钦点的XML字符串中反系列化到现实的指标    
/// </summary>    
/// <param name=”type”>对象的门类</param>    
/// <param name=”s”>XML字符串</param>    
/// <returns></returns>    
public static object DeserializeFromXml(Type type, string s)    
   
/// <summary>    
/// 从钦定的Soap协议字符串中反系列化到现实的指标    
/// </summary>    
/// <param name=”type”>对象的体系</param>    
/// <param name=”s”>Soap协议字符串</param>    
/// <returns></returns>    
public static object DeserializeFromSoap(Type type, string s)    
   
/// <summary>    
/// 从钦赐的2进制字节数组中反连串化到现实的目的    
/// </summary>    
/// <param name=”type”>对象的种类</param>    
/// <param name=”bytes”>贰进制字节数组</param>    
/// <returns></returns>    
public static object DeserializeFromBinary(Type type, byte[] bytes)    
   
/// <summary>    
/// 从内定的文本总,以2进制字节数组中反系列化到实际的对象    
/// </summary>    
/// <param name=”type”>对象的类型</param>    
/// <param name=”bytes”>贰进制字节数组存款和储蓄的文书</param>    
/// <returns></returns>    
public static object DeserializeFromBinary(Type type, string path)    
   
/// <summary>    
/// 获取对象的字节数组大小    
/// </summary>    
/// <param name=”o”>对象</param>    
/// <returns></returns>    
public static long GetByteSize(object o)    
   
/// <summary>    
/// 克隆叁个对象    
/// </summary>    
/// <param name=”o”>对象</param>    
/// <returns></returns>    
public static object Clone(object o)     
    

2)帮助类的施用例子代码如下所示 

 public class TestSerializeUtil    

    {    
        public static string Execute()    
        {    
            string result = string.Empty;    
            result += “使用SerializeUtil种类化及反连串化的支持类:” + “\r\n”;    
                
            Person person = new Person();    
            person.Name = “wuhuacong”;    
            person.Age = 20;    
                
            byte[] bytes = SerializeUtil.SerializeToBinary(person);    
            Person person2 = SerializeUtil.DeserializeFromBinary(typeof (Person), bytes) as Person;    
            result += ReflectionUtil.GetProperties(person2) + “\r\n”;    
                
            string xml = SerializeUtil.SerializeToXml(person);    
            Person person3 = SerializeUtil.DeserializeFromXml(typeof (Person), xml) as Person;    
            result += “person3:\r\n” + ReflectionUtil.GetProperties(person3) + “\r\n”;    
                
            result += “SerializeUtil.GetByteSize(person3):” + SerializeUtil.GetByteSize(person3) + “\r\n”;    
                
            Person person4 = SerializeUtil.Clone(person3) as Person;    
            result += “person4:\r\n” + ReflectionUtil.GetProperties(person4) + “\r\n”;    
                
            result += “Util.AreObjectsEqual(person3, person4):” + Util.AreObjectsEqual(person3, person4)+ “\r\n”;    
                
            SerializeUtil.SerializeToXmlFile(person3, Util.CurrentPath + “person3.xml”, FileMode.Create);    
            Person person5 = SerializeUtil.DeserializeFromXmlFile(typeof (Person), Util.CurrentPath + “person3.xml”) as Person;    
            result += “person5:\r\n” + ReflectionUtil.GetProperties(person5) + “\r\n\r\n”;    
                
            result += SerializeUtil.ReadFile(Util.CurrentPath + “person3.xml”) + “\r\n\r\n”;    
            result += SerializeUtil.ReadFileFromEmbedded(“TestUtilities.EmbedFile.xml”) + “\r\n\r\n”;    
   
            return result;    
        }    
    }  

 

③、完结命令行解析的常用操作的协理类 CommandLine。  

落到实处际效果益

1)本帮忙类首即使用来便宜完成命令行解析的常用操作,命令行的辨析在不少景色下是卓越要求的,如自行并带参数运维的操作等。 

2)命令行参数。那包含五个列表,一个是参数对,3个是单身的参数。 

3)参数是概念为键/值对。参数键必须以’-‘,
‘–‘只怕’\’开头,在参数和值时期必须有1个空格或然字符’=’。多余的空格将被忽视。参数前边总得随着三个值,若是未有点名值,那么字符串’true’将被钦命。要是值有空格,必须使用双引号来含有字符,不然字符无法被科学分析。

福寿康宁代码

壹)协理类提供的法门接口如下所示: 

/// <summary>    
/// 解析传递的命令行参数,并赶回结果到三个CommandArgs对象。    
/// 借义务令行格式: CMD [param] [[-|–|\]<arg>[[=]<value>]] [param]    
/// 例如:cmd first -o outfile.txt –compile second \errors=errors.txt third fourth –test = “the value” fifth    
/// </summary>    
/// <param name=”args”>命令行参数数组</param>    
/// <returns>包罗转换后的命令行对象CommandArgs</returns>   

public static CommandArgs Parse(string[] args)  

 

/// <summary>    
/// 包含解析的命令行参数。这包蕴三个列表,二个是参数对,一个是独自的参数。    
/// </summary>    
public class CommandArgs    
{    
    /// <summary>    
    /// 重返参数/参数值的键值字典    
    /// </summary>    
    public Dictionary<string, string> ArgPairs    
   
    /// <summary>    
    /// 重返独立的参数列表    
    /// </summary>    
    public List<string> Params    

}   

二)帮助类的采取例子代码如下所示 

/// <summary>    
/// 应用程序的主入口点。    
/// </summary>    
[STAThread]    
static void Main(string[] args)    
{    
    //参数字符串:first -o outfile.txt –compile second \errors=errors.txt third fourth –test = “the value” fifth    
   
    CommandArgs objArgs = CommandLine.Parse(args);    
        
    //键值参数列表,获得输出    
    //o:outfile.txt    
    //compile:second    
    //errors:errors.txt    
    //test:the value    
    foreach (string str in objArgs.ArgPairs.Keys)    
    {    
        Debug.WriteLine(string.Format(“{0}:{1}”, str, objArgs.ArgPairs[str]));    
    }    
   
   
    //非键值参数列表:获得first third fourth fifth 共三个字符串    
    foreach (string str in objArgs.Params)    
    {    
        Debug.WriteLine(str);    
    }    
   
    Application.EnableVisualStyles();    
    Application.SetCompatibleTextRenderingDefault(false);    
    Application.Run(new Form1());    

 

3)输出结果如下所示

我们给程序输入命令行参数first -o outfile.txt –compile second
\errors=errors.txt third fourth –test = “the value”
fifth,获得的出口结果如下所示。

o:outfile.txt    
compile:second    
errors:errors.txt    
test:the value    
first    
third    
fourth    
fifth  

4、枚举操作辅助类 EnumHelper。  

福寿齐天效益

一)本援助类主假若用来便宜实现枚举的各个相关操作。 

二)枚举操作,涉及字符串和枚举对象互转、获取枚举成员、获取名称和值集合、获取枚举值、枚举描述等操作。 

三)枚举能够说是壹种强类型的对象操作,比起利用古怪字符、只怕数值等剧情,具有强类型,编写翻译时刻就分明等风味,在实际上费用中,大家还足以选择汉语枚举来方便完毕各样操作。 

落到实处代码

一)援助类提供的点子接口如下所示: 

/// <summary>    
/// 通过字符串获取枚举成员实例    
/// </summary>    
/// <typeparam name=”T”>枚举名,比如Enum1</typeparam>    
/// <param name=”member”>枚举成员的常量名或常量值,    
/// 范例:Enum一枚举有五个成员A=0,B=1,则传出”A”或”0″获取 Enum一.A 枚举类型</param>    
public static T GetInstance<T>(string member)    
   
/// <summary>    
/// 获取枚举成员名称和成员值的键值对聚集    
/// </summary>    
/// <typeparam name=”T”>枚举名,比如Enum1</typeparam>    
public static Dictionary<string, object> GetMemberKeyValue<T>()    
   
/// <summary>    
/// 获取枚举全体成员名称    
/// </summary>    
/// <typeparam name=”T”>枚举名,比如Enum1</typeparam>    
public static string[] GetMemberNames<T>()    
   
/// <summary>    
/// 获取枚举成员的名目    
/// </summary>    
/// <typeparam name=”T”>枚举名,比如Enum1</typeparam>    
/// <param name=”member”>枚举成员实例或成员值,    
/// 范例:Enum壹枚举有四个成员A=0,B=1,则传出Enum1.A或0,获取成员名称”A”</param>    
public static string GetMemberName<T>(object member)    
   
/// <summary>    
/// 获取枚举全体成员值    
/// </summary>    
/// <typeparam name=”T”>枚举名,比如Enum1</typeparam>    
public static Array GetMemberValues<T>()    
   
/// <summary>    
/// 获取枚举成员的值    
/// </summary>    
/// <typeparam name=”T”>枚举名,比如Enum1</typeparam>    
/// <param name=”memberName”>枚举成员的常量名,    
/// 范例:Enum1枚举有八个成员A=0,B=一,则传出”A”获取0</param>    
public static object GetMemberValue<T>(string memberName)    
   
/// <summary>    
/// 获取枚举的功底项目    
/// </summary>    
/// <param name=”enumType”>枚举类型</param>    
public static Type GetUnderlyingType(Type enumType)    
   
/// <summary>    
/// 检查实验枚举是不是包涵钦定成员    
/// </summary>    
/// <typeparam name=”T”>枚举名,比如Enum1</typeparam>    
/// <param name=”member”>枚举成员名或成员值</param>    
public static bool IsDefined<T>(string member)    
   
/// <summary>    
/// 再次回到钦赐枚举类型的钦点值的叙述    
/// </summary>    
/// <param name=”t”>枚举类型</param>    
/// <param name=”v”>枚举值</param>    
/// <returns></returns>    
public static string GetDescription(System.Type t, object v)    
   
/// <summary>    
/// 重返钦赐枚举类型的内定值的名号    
/// </summary>    
/// <param name=”t”>钦点枚举类型</param>    
/// <param name=”v”>指定值</param>    
/// <returns></returns>    
private static string GetName(System.Type t, object v)    
   
/// <summary>    
/// 获取枚举类型的照应序号及描述名称    
/// </summary>    
/// <param name=”t”>枚举类型</param>    
/// <returns></returns>    

public static SortedList GetStatus(System.Type t)
   

二)扶助类的应用例子代码如下所示 

private void btnTestEnum_Click(object sender, EventArgs e)    
{    
    string desc = EnumHelper.GetDescription(typeof(SqlOperator), SqlOperator.Like);    
    MessageUtil.ShowTips(string.Format(“SqlOperator.Like:{0}”, desc));    
   
    SortedList list = EnumHelper.GetStatus(typeof(SqlOperator));    
    StringBuilder sb = new StringBuilder();    
    foreach (int key in list.Keys)    
    {    
        sb.AppendFormat(“key:{0} Value:{1} \r\n”, key, list[key]);    
    }    
    MessageUtil.ShowTips(sb.ToString());    
}
  

图片 1 

5、身份证相关操作扶助类 ID卡德Helper。  

福寿年高效益

一)本辅助类首借使用来方便实出现份证的种种相关操作,验证身份证、一5到二十个人身份证编号更换、提取省份、县市、地区瓜分、出生年月及判断孩子等操作。 

落实代码

一)扶助类提供的章程接口如下所示: 

/// <summary>    
/// 绑定身份证类别的名目    
/// </summary>    
/// <param name=”cb”>ComboBox控件</param>    
public static void InitIdType(ComboBox cb)    
   
/// <summary>    
/// 获取身份证类其他称呼(居民身份证、军官证、士兵证、军人离退休证、境外人士身份注明、外交人士身份表明)    
/// </summary>    
/// <returns></returns>    
public static DataTable CreateIDType()    
   
/// <summary>    
/// 验证身份证结果    
/// </summary>    
/// <param name=”idcard”>身份证号码</param>    
/// <returns>正确的时候回来string.Empty</returns>    
public static string Validate(string idcard)    
   
/// <summary>    
/// 1伍人身份表明号码转化成十几人用来编码    
/// </summary>    
/// <param name=”idcard”>一八个人的身份证号码</param>    
/// <returns></returns>    
public static string IdCard15To18(string idcard)    
   
/// <summary>    
/// 获取身份证对应省份的细分    
/// </summary>    
/// <param name=”id”>身份证</param>    
/// <returns>头两位+4个0</returns>    
public static string GetProvince(string id)    
   
/// <summary>    
/// 获取身份证对宁武县市的撤销合并    
/// </summary>    
/// <param name=”id”>身份证</param>    
/// <returns>头4位+2个0</returns>    
public static string GetCity(string id)    
   
/// <summary>    
/// 获取身份证对应地区的分割    
/// </summary>    
/// <param name=”id”>身份证</param>    
/// <returns>头6位</returns>    
public static string GetArea(string id)    
   
/// <summary>    
/// 依据身份证判断是还是不是男女    
/// </summary>    
/// <param name=”id”>身份证编号</param>    
/// <returns>返回”男”或者”女”</returns>    
public static string GetSexName(string id)    
   
/// <summary>    
/// 依据身份证获取出生年月    
/// </summary>    
/// <param name=”id”>身份证号码</param>    
/// <returns>出生年月</returns>    

public static DateTime GetBirthday(string id)    

2)辅助类的利用例子代码如下所示 

事例涉及敏感音信,自个儿测试下即可,呵呵
   

 

陆、种种输入格式验证扶助类 ValidateUtil。  

金镶玉裹福禄双全效益

一)本帮忙类首借使用来便于完毕各个输入格式验证操作。 

2)格式验证包涵各个数字格式、汉语检查测试、身份证、邮件、邮编、固定电话、手提式无线电话机、U揽胜L地址、IP地址、日期格式、GUID、Base6四编码等格式验证。 

3)本帮助类选择种种经过验证的正则表明式进行匹配,具有高效、准确的表征,请放心使用。 

兑现代码

1)支持类提供的艺术接口如下所示: 

#region 用户名密码格式    
   
/// <summary>    
/// 再次来到字符串真实长度, 三个汉字长度为二    
/// </summary>    
/// <returns>字符长度</returns>    
public static int GetStringLength(string stringValue)    
   
/// <summary>    
/// 检查实验用户名格式是不是有效    
/// </summary>    
/// <param name=”userName”>用户名</param>    
/// <returns></returns>    
public static bool IsValidUserName(string userName)    
   
/// <summary>    
/// 密码有效性    
/// </summary>    
/// <param name=”password”>密码字符串</param>    
/// <returns></returns>    
public static bool IsValidPassword(string password)   
  
#endregion   
  
#region 数字字符串检查    
   
/// <summary>    
/// int有效性    
/// </summary>    
static public bool IsValidInt(string val)    
   
/// <summary>    
/// 是还是不是数字字符串    
/// </summary>    
/// <param name=”inputData”>输入字符串</param>    
/// <returns></returns>    
public static bool IsNumeric(string inputData)    
   
/// <summary>    
/// 是或不是数字字符串    
/// </summary>    
/// <param name=”inputData”>输入字符串</param>    
/// <returns></returns>    
public static bool IsNumber(string inputData)    
   
/// <summary>    
/// 是或不是数字字符串 可带正负号    
/// </summary>    
/// <param name=”inputData”>输入字符串</param>    
/// <returns></returns>    
public static bool IsNumberSign(string inputData)    
   
/// <summary>    
/// 是或不是是浮点数    
/// </summary>    
/// <param name=”inputData”>输入字符串</param>    
/// <returns></returns>    
public static bool IsDecimal(string inputData)    
   
/// <summary>    
/// 是或不是是浮点数 可带正负号    
/// </summary>    
/// <param name=”inputData”>输入字符串</param>    
/// <returns></returns>    
public static bool IsDecimalSign(string inputData)   
  
#endregion   
  
#region 中文检查评定    
   
/// <summary>    
/// 检查测试是还是不是有中文字符    
/// </summary>    
public static bool IsHasCHZN(string inputData)    
   
/// <summary>     
/// 检查实验含有汉语字符串的实际上尺寸     
/// </summary>     
/// <param name=”str”>字符串</param>     
public static int GetCHZNLength(string inputData)   
  
#endregion   
  
#region 常用格式    
   
/// <summary>    
/// 验证身份证是还是不是合法  1伍 和  拾十一个人二种    
/// </summary>    
/// <param name=”idCard”>要证实的身份证</param>    
public static bool IsIdCard(string idCard)    
   
/// <summary>    
/// 是或不是是邮件地址    
/// </summary>    
/// <param name=”inputData”>输入字符串</param>    
/// <returns></returns>    
public static bool IsEmail(string inputData)    
   
/// <summary>    
/// 邮政编码有效性    
/// </summary>    
public static bool IsValidZip(string zip)    
   
/// <summary>    
/// 固定电话有效性    
/// </summary>    
public static bool IsValidPhone(string phone)    
   
/// <summary>    
/// 手提式有线电话机有效性    
/// </summary>    
public static bool IsValidMobile(string mobile)    
   
/// <summary>    
/// 电话有效性(固话和手提式有线电话机 )    
/// </summary>    
public static bool IsValidPhoneAndMobile(string number)    
   
/// <summary>    
/// Url有效性    
/// </summary>    
static public bool IsValidURL(string url)    
   
/// <summary>    
/// IP有效性    
/// </summary>    
public static bool IsValidIP(string ip)    
   
/// <summary>    
/// domain 有效性    
/// </summary>    
/// <param name=”host”>域名</param>    
/// <returns></returns>    
public static bool IsValidDomain(string host)    
   
/// <summary>    
/// 判断是不是为base6四字符串    
/// </summary>    
public static bool IsBase64String(string str)    
   
/// <summary>    
/// 验证字符串是不是是GUID    
/// </summary>    
/// <param name=”guid”>字符串</param>    
/// <returns></returns>    
public static bool IsGuid(string guid)   
  
#endregion   
  
#region 日期检查    
   
/// <summary>    
/// 判断输入的字符是还是不是为日期    
/// </summary>    
public static bool IsDate(string strValue)    
   
/// <summary>    
/// 判断输入的字符是不是为日期,如200四-07-1二 14:二伍|||①九零四-0一-01 00:00|||9999-1二-3一 二三:5玖    
/// </summary>    
public static bool IsDateHourMinute(string strValue)   
  
#endregion   
  
#region 其他    
   
/// <summary>    
/// 检查字符串最大尺寸,再次来到钦命长度的串    
/// </summary>    
/// <param name=”sqlInput”>输入字符串</param>    
/// <param name=”maxLength”>最大尺寸</param>    
/// <returns></returns>             
public static string CheckMathLength(string inputData, int maxLength)    
   
/// <summary>    
/// 转换成 HTML code    
/// </summary>    
public static string Encode(string str)    
   
/// <summary>    
///解析html成 普通文书    
/// </summary>    

public static string Decode(string str)  

二)协理类的采纳例子代码如下所示 

string[] qunList = lineString.Split(new char[] { ‘,’, ‘;’, ‘ ‘ });    
foreach (string qunNumber in qunList)    
{    
    if (!string.IsNullOrEmpty(qunNumber) && ValidateUtil.IsNumber(qunNumber))    
    {   
        #region 对种种号码实行查询    
        if (!QunDict.ContainsKey(qunNumber))    
        {    
            this.lstItems.Invoke(new MethodInvoker(delegate()    
            {    
                this.lstItems.Items.Add(qunNumber);    
                this.lstItems.Refresh();    
            }));    
   
            QunDict.Add(qunNumber, qunNumber);    
        }    
        else   
        {    
            skipCount++;    
        }    
        #endregion    
    }    

}  

三)扶助类使用例子代码二之类所示 

string src = CRegex.GetImgSrc(img);    
bool isurl = ValidateUtil.IsValidURL(src);    
if (isurl)    
{    
    continue;    

}
  

CHM帮忙文书档案持续立异中,统一下载地址是: http://www.iqidi.com/download/commonshelp.rar 

风行公用类库DLL+XML注释文件下载地址是:http://files.cnblogs.com/wuhuacong/WHC.OrderWater.Commons.rar 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图