有人可以解释为什么这不起作用?无论数字类型如何,我都试图能够添加两个值.
public static T Add<T> (T number1, T number2)
{
return number1 + number2;
}
Run Code Online (Sandbox Code Playgroud)
当我编译它时,我收到以下错误:
Operator '+' cannot be applied to operands of type 'T' and 'T'
Run Code Online (Sandbox Code Playgroud) 我正在编写一个类,它对C#中的每个原始数字类型进行基本相同类型的计算.虽然实际计算更复杂,但可以将其视为计算多个值的平均值的方法,例如
class Calc
{
public int Count { get; private set; }
public int Total { get; private set; }
public int Average { get { return Count / Total; } }
public int AddDataPoint(int data)
{
Total += data;
Count++;
}
}
Run Code Online (Sandbox Code Playgroud)
现在支持double,float和其他定义operator +和operator /的类的相同操作,我首先想到的只是使用泛型:
class Calc<T>
{
public T Count { get; private set; }
public T Total { get; private set; }
public T Average { get { return Count / Total; } }
public T AddDataPoint(T …Run Code Online (Sandbox Code Playgroud) 我写了Generics类,但我遇到了标题中描述的问题.
class Program
{
static void Main(string[] args)
{
int a = 1;
int b = 2;
int c = 3;
dynamic obj = new Gen<int>();
obj.TestLine1(ref a, ref b);
obj = new Gen<string>();
obj.TestLine2(ref a, ref b, ref c);
System.Console.WriteLine(a + " " + b);
Console.ReadLine();
}
}
public class Gen<T>
{
public void TestLine1(ref T a, ref T b)
{
T temp;
temp = a;
a = b;
b = temp;
}
public void TestLine2(ref …Run Code Online (Sandbox Code Playgroud)