设计适用于SOA的类型(二)

接着上次的,以扩展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 = new WString("ss {0}", 3);

            Console.WriteLine(sRet.sRet);

            Console.WriteLine();



            //也可以直接通过String来初始化对象

            WString sRet2 = "测试一下哦";

            Console.WriteLine(sRet2);

            Console.WriteLine();



            //支持两个WString通过运算符 + 来拼接字符串

            sRet2 += sRet;

            Console.WriteLine(sRet2);

            Console.WriteLine();
View Code

演示效果:

设计适用于SOA的类型(二)

 

其他的修改:
1、重载了一个构造函数,支持占位符了(个人习惯嘛)
设计适用于SOA的类型(二)
 
2、重写了ToString方法,直接返回WString的sRet属性(个人习惯)
设计适用于SOA的类型(二)
 
3、序列化类内置,不需要引用Network.Json,内部使用的是fastJson。只需要引用WLF一个DLL,提供WLF.Json.JsonConvert类来完成序列化和反序列化。
 
使用fastJson的优点,虽然序列化的数据冗长,但可以序列化0行的 DataTable,很多序列化方式在0行DataTable情况下是返回空的,得到的DataTable是没有列头的,而fastJson可以达到我的要求。
 
这次重载了运算,自己用起来更爽了,很开心。

你可能感兴趣的:(SOA)