c#中添加int, float的通用方法

本文关键字:方法 float 添加 int | 更新日期: 2023-09-27 18:03:56

我正在写一个通用的方法来添加整数,浮点数,双精度

public T  Swap<T>( T value1,  T value2)
{
    T temp;
    temp = value1 +value2;
    return temp;
}

我得到一个错误:

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

我正在使用VS 2005,谁能告诉我如何实现它?

c#中添加int, float的通用方法

你不能直接这么做。. net中的泛型不支持它。但是,还有其他可用的选项:

  • 在c# 4中,你可以使用动态类型:

    public static T Sum<T>(T value1,  T value2)
    {
        dynamic temp = value1;
        temp += value2;
        return temp;
    }
    

    编辑:我没有注意到你使用VS2005。你真的要做吗?你能不能把它升级到最近的?

  • Marc Gravell在MiscUtil中编写了代码,通过委托非常有效地做到了这一点。有关更多信息,请参阅用法页面。MiscUtil中的实现使用c# 3和。net 3.5,但我相信Marc在。net 2中使用DynamicMethod有一个单独的实现。我们可以打电话给他,看看你是否需要……