111,120
社区成员
发帖
与我相关
我的任务
分享 private void button1_Click(object sender, EventArgs e)
{
int total = TestGeneric<int>(100);
MessageBox.Show(total.ToString());
}
public T TestGeneric<T>(T t)
{
var obj = t;
obj = (int)obj + 10;//想在这里做数据处理,但报错
return obj;
}
static T add<T>(T obj)
where T:struct ,IConvertible
{
return (T) (obj.ToInt32(null) + 1).ChangeType(typeof(T).GetTypeInfo());
}
public static object TestGeneric<T>(T t)
{
return Convert.ToInt32(t) + 10;
}
int total = (int)TestGeneric(100);
至于1楼虽然是个解决方案,但是这也失去了泛型的意义。
诸如double,float,long等等都要判断的话,其实就等于没有泛型了。
if (obj.GetType().ToString() == "System.Int32")
{
return Convert.ToInt32(obj) + 10;//想在这里做数据处理,但报错
}public int TestGeneric<T>(T t)
{
var obj = t;
if (obj.GetType().ToString() == "System.Int32")
{
return Convert.ToInt32(obj) + 10;//想在这里做数据处理,但报错
}
else
{
return 0;
}
}这样改