//====================== 泛型类及类型转换 ===========================
泛型类代码
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);//显示到窗口
显示结果: