相关疑难解决方法(0)

C#添加两个通用值

有人可以解释为什么这不起作用?无论数字类型如何,我都试图能够添加两个值.

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)

generics c#-4.0

34
推荐指数
5
解决办法
3万
查看次数

通用C#代码和Plus运算符

我正在编写一个类,它对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)

c# generics math

21
推荐指数
2
解决办法
8365
查看次数

泛型运算符'+'不能应用于'T'和'T'类型的操作数

可能重复:
.NET泛型中重载运算符约束的解决方案在泛型中
实现算术运算?

我写了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)

c# generics

-1
推荐指数
1
解决办法
6941
查看次数

标签 统计

generics ×3

c# ×2

c#-4.0 ×1

math ×1