小弟正在学习C#泛型,现在想到一个问题,能不能根据传入参数的类型执行不同的操作,请看下面的代码(应该是伪代码,编译器里面通不过)。请各位大虾不吝赐教。
public class Test<T>
{
public T TestM1(T a,T b)
{
if (T == System.TypeCode.Double)
{
return a * b;
}
else
{
return a + b;
}
}
}
public class Test<T>
{
public T TestM1(T a,T b)
{
if (T == System.TypeCode.Double)
{
return a * b;
}
else
{
return a + b;
}
}
}
解决方案 »
- 请问如何循环获取xml
- .NET的程序为啥在有的机子上无法运行????????
- 语法错误 (操作符丢失) 在查询表达式 ''计科0501 ','1-2节','无'' 中。
- winform开发,开发报表,做Excel的报表,求教好方法[高分,马上给]
- c#中的循环问题
- ~~~各位买书一般在china-pub还是dangdang?。。~~~
- c#中有一个阴影复制的功能,各位能否解释一下
- 100元求购《Windows高级编程指南(第三版)》我是一个初学者,若你不用此书了,卖给我也帮助我吧,谢谢!!!
- WebBrowser提交表单不自动跳转
- ★CSC★重新装了 .NET 框架,结果在命令提示符下“CSC” 这个编译命令却不能用了,这是怎么回事啊!
- 通过OleDb连接读取excel得到多余空行
- TableLayoutPanel的边框色,如何设置?
抛开泛型,就单实现这样的功能,根本都不用泛型,参数都定义成object类型,或者方法重载都可以实现
或者一定要这样写的话也可以这样判断
public T TestM1(T a,T b)
{
if (a is double)
{
return a * b;
}
else
{
return a + b;
}
}
if (T == System.TypeCode.Double)这句话是肯定不对的
typeof(T).Equals(typeof(double))