C#,定义一个泛型方法,可以用于计算两个整型数及双精度浮点型值类型变量的和。
定义一个泛型方法,可以用于计算两个整型数及双精度浮点型值类型变量的和注意是用泛型方法来写哦。我写的它总提示运算符+不能用于T和T类型的操作数求大神给出解答...
定义一个泛型方法,可以用于计算两个整型数及双精度浮点型值类型变量的和
注意是用泛型方法来写哦。我写的它总提示运算符+不能用于T和T类型的操作数
求大神给出解答 展开
注意是用泛型方法来写哦。我写的它总提示运算符+不能用于T和T类型的操作数
求大神给出解答 展开
4个回答
推荐于2018-03-13 · 知道合伙人软件行家
关注
展开全部
using System;
namespace ConsoleDemo
{
class Test<T>
{
public T Add<T>(T t1, T t2)
{
object tem1 = t1, tem2 = t2;
if (t1 is int)
{
object ret = Convert.ToInt32(tem1) + Convert.ToInt32(tem2);
return (T)ret;
}
else if (t1 is double)
{
object ret = Convert.ToDouble(tem1) + Convert.ToDouble(tem2);
return (T)ret;
}
return t1;
}
}
class Program
{
private static void Main(string[] args)
{
Test<int> ti = new Test<int>();
Console.WriteLine("int : " + ti.Add(12, 8));
Test<double> td = new Test<double>();
Console.WriteLine("double : " + td.Add(12.26, 8.83));
Console.ReadKey();
}
}
}
展开全部
using System;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
TCount<double>(1, 1);
}
public static void TCount<T>(T one, T two)
{
Console.WriteLine("他们之和是:"+(double.Parse(one.ToString())+double.Parse(two.ToString())));
}
}
}
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
TCount<double>(1, 1);
}
public static void TCount<T>(T one, T two)
{
Console.WriteLine("他们之和是:"+(double.Parse(one.ToString())+double.Parse(two.ToString())));
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你的泛型类重载运算符,假设你T类有个value属性存储你要操作的数值。
public static double operator +(T t1, T t2)
{
double result=t1.value+t2.value
return result;
}
public static double operator +(T t1, T t2)
{
double result=t1.value+t2.value
return result;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只能在方法里面判断TypeOf(T),然后转换成整数或者浮点计算,再转成T
更多追问追答
追问
不太懂诶,具体怎么实现呢
追答
把你的代码发出来修改一下。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询