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