接着上次的,以扩展String类型为例,继续根据自己的使用习惯闭门造车!
这一次我重载了运算符 = 和 + ,我觉得这样更方便我的使用。首先先贴代码:
/// <summary> /// 重载转换运算符:可以直接赋string的值给本对象完成实例化 /// </summary> /// <param name="WString"></param> /// <returns></returns> public static implicit operator WString(string str) { return new WString(str); } /// <summary> /// 重载运算符:两个WString类型可以直接拼接字符串 sRet /// </summary> /// <param name="s1"></param> /// <param name="s2"></param> /// <returns></returns> public static WString operator +(WString s1, WString s2) { s1.sRet = string.Concat(s1.sRet, s2.sRet); return s1; }
重载运算符
演示代码:
//修改构造函数,支持占位符 WString sRet = ); Console.WriteLine(sRet.sRet); Console.WriteLine(); //也可以直接通过String来初始化对象 WString sRet2 = "测试一下哦"; Console.WriteLine(sRet2); Console.WriteLine(); //支持两个WString通过运算符 + 来拼接字符串 sRet2 += sRet; Console.WriteLine(sRet2); Console.WriteLine();
演示效果:
其他的修改:
1、重载了一个构造函数,支持占位符了(个人习惯嘛)

2、重写了ToString方法,直接返回WString的sRet属性(个人习惯)

3、序列化类内置,不需要引用Network.Json,内部使用的是fastJson。只需要引用WLF一个DLL,提供WLF.Json.JsonConvert类来完成序列化和反序列化。


使用fastJson的优点,虽然序列化的数据冗长,但可以序列化0行的 DataTable,很多序列化方式在0行DataTable情况下是返回空的,得到的DataTable是没有列头的,而fastJson可以达到我的要求。
这次重载了运算,自己用起来更爽了,很开心。