C# 泛型与其他类型的相互转换

//====================== 泛型类及类型转换 ===========================
泛型类代码

    public class MyTemplate<T>    //设计一个泛型类
    {
        private T mydata;
        
        public MyTemplate()
        {
            
        }
        
        public void Append(T s)    //内容相连或者相加
        {
            if(s is int)    //整形相加
            {
                int sum=Convert.ToInt32(s)+Convert.ToInt32(mydata);//泛型转整形
                mydata=(T)Convert.ChangeType(sum,typeof(T));    //整形转泛型            
            }
            else if(s is string)    //字符串相连
            {
                string sum=Convert.ToString(s)+Convert.ToString(mydata);    //泛型转string
                mydata=(T)Convert.ChangeType(sum,typeof(T));    //string转泛型
            }
            else if(s is double)    //浮点数相加
            {
                double sum=Convert.ToDouble(s)+Convert.ToDouble(mydata);    //泛型转浮点型
                mydata=(T)Convert.ChangeType(sum,typeof(T));    //浮点型转泛型
            }
            else if(s is bool)    //BOOL型求或
            {
                bool sum=Convert.ToBoolean(s) | Convert.ToBoolean(mydata);    //泛型转BOOL型
                mydata=(T)Convert.ChangeType(sum,typeof(T));    //BOOL型转泛型
            }
            
        }        
        
        public T GetValue()    //取当前值
        {
            return mydata;
        }        
        
    }

//使用代码:
    MyTemplate<string> note=new MyTemplate<string>();
            note.Append("a");
            note.Append("b");
            string iresult=string.Format("This string Data is:{0}",note.GetValue());
            lbLog.Items.Add(iresult);    //显示到窗口
            
            MyTemplate<int> num=new MyTemplate<int>();
            num.Append(2);
            num.Append(3);
            num.Append(4);
            iresult=string.Format("This int Data is:{0}",num.GetValue());
            lbLog.Items.Add(iresult);//显示到窗口
            
            MyTemplate<double> dnum=new MyTemplate<double>();
            dnum.Append(2.12);
            dnum.Append(3.23);
            dnum.Append(4.34);
            iresult=string.Format("This double Data is:{0}",dnum.GetValue());
            lbLog.Items.Add(iresult);//显示到窗口
            
            MyTemplate<bool> bnum=new MyTemplate<bool>();
            bnum.Append(true);
            bnum.Append(false);
            bnum.Append(false);
            iresult=string.Format("This bool Data is:{0}",bnum.GetValue());
            lbLog.Items.Add(iresult);//显示到窗口


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864