//====================== 泛型类及类型转换 =========================== 泛型类代码 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,转载请注明出处!讨论可扫码加群:


