少有人走的路

勇哥的工业自动化技术网站

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);//显示到窗口


发表评论:

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

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864