需要在C#泛型类中添加2个数字

卡玛尔

我有以下代码:

public T[] Plus<T>(T[] a, T[] b, int size)
{
    T[] sum = new T[size];
    for (int i = 0; i < size; i++)
    {
        sum[i] = a[i] + b[i];
    }
    return sum;
}

但它不起作用。如何计算“ a”和“ b”数组?

PST可能只sbyte int uint long ulong对不起我的英语不好。

马克·格雷维尔(Marc Gravell)

这是一种可怕的方法,但是至少可以起作用:

    for (int i = 0; i < size; i++)
    {
        sum[i] = (dynamic)a[i] + (dynamic)b[i];
    }

但是,它确实进行了很多装箱和拆箱。如果您想要更好的版本,则可以通过重载来做得更好:

public static int[] Plus(int[] a, int[] b, int size)
{
    int[] sum = new int[size];
    for (int i = 0; i < size; i++)
    {
        sum[i] = a[i] + b[i];
    }
    return sum;
}
public static long[] Plus(long[] a, long[] b, int size)
{
    long[] sum = new long[size];
    for (int i = 0; i < size; i++)
    {
        sum[i] = a[i] + b[i];
    }
    return sum;
}

您还可以修改通用版本:

public static T[] Plus<T>(T[] a, T[] b, int size)
{
    switch(Type.GetTypeCode(typeof(T)))
    {
        case TypeCode.Int32:
            return (T[])(object)Plus((int[])(object)a, (int[])(object)b, size);
        case TypeCode.Int64:
            return (T[])(object)Plus((long[])(object)a, (long[])(object)b, size);
        // ...etc
        default:
            throw new NotSupportedException();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

需要在C#通用类中添加2个数字

来自分类Dev

比较C#中2个泛型类型的对象

来自分类Dev

为什么铸造或泛型的使用需要在Java中添加字符串到的ArrayList?

来自分类Dev

需要C#中的泛型构造函数

来自分类Dev

如何在C#中的泛型类中使用泛型类的对象?

来自分类Dev

类中具有2个泛型类型的方法,其中1个泛型类型

来自分类Dev

类中具有2个泛型类型的方法,其中1个泛型类型

来自分类Dev

C ++中的泛型类

来自分类Dev

C#中的多类泛型集合

来自分类Dev

C#在方法调用中扩展泛型类

来自分类Dev

在C#中创建泛型类的字典的辅助方法

来自分类Dev

C#覆盖泛型类中的基类属性

来自分类Dev

在C#中实例化泛型类

来自分类Dev

C#在方法调用中扩展泛型类

来自分类Dev

C#中的多类泛型集合

来自分类Dev

如何在C#中遍历泛型类的属性?

来自分类Dev

将引用转换为C#中的泛型类

来自分类Dev

嵌套泛型/抽象类C#中的嵌套泛型的继承

来自分类Dev

c#中具有泛型类的泛型方法

来自分类Dev

c#获取泛型类中泛型类型参数的名称

来自分类Dev

需要在C#中按键和值相交2个字典

来自分类Dev

需要在C#中按键和值相交2个字典

来自分类Dev

C# 泛型对象不能添加到该泛型类型的列表中

来自分类Dev

具有两个泛型参数的C#中的泛型方法

来自分类Dev

泛型类的字段约束 - C#

来自分类Dev

从泛型类派生的c#问题

来自分类Dev

在C#中,对于同一个泛型,有什么替代更多类约束的方法?

来自分类Dev

C ++:泛型类中的非泛型方法?

来自分类Dev

在C中的数组中打印2个数字并跳过2个数字