我要对int float double uint几种数据类型做相同的运算,能不能写成一个函数
比如
public int AddOne(int a) {return a+1;}
public float AddOne(float a) {return a+1;}
public double AddOne(double a) {return a+1}
public uint AddOne(uint a) {return a+1;} 这四个函数写成一个函数?
因为实际操作很复杂,分开写很麻烦,而且都是一样的运算
请教一下
比如
public int AddOne(int a) {return a+1;}
public float AddOne(float a) {return a+1;}
public double AddOne(double a) {return a+1}
public uint AddOne(uint a) {return a+1;} 这四个函数写成一个函数?
因为实际操作很复杂,分开写很麻烦,而且都是一样的运算
请教一下
public object AddOne(object a,int i)
{
switch(i)
{
case 1:
return ....;//int
break;
}
}
public interface myclasses {
public void AddOne();
]
{
return t;
}
事半功倍。
class AddOne
{
public:
T operator()(T v)
{
return v + 1;
}
};int main(array<System::String ^> ^args)
{
AddOne<int> func1;
AddOne<float> func2; int a = func1(3);
float b = func2(3.4); Console::WriteLine(L"Hello World");
return 0;
}
public static T AddOne<T>(T a)
{
if (a is int)
return (T)((object)(Convert.ToInt32(a) + 1));
else if (a is float)
return (T)((object)(Convert.ToSingle(a) + 1));
else if(a is double)
return (T)((object)(Convert.ToDouble(a) + 1));
else if(a is uint)
return (T)((object)(Convert.ToUInt32(a) + 1));
return default(T);
}
我感觉还不如你写四个重载来的方便呢……