/// <summary>
/// 两个int型数组相加
/// </summary>
/// <param name="arr1"></param>
/// <param name="arr2"></param>
/// <returns></returns>
public static int[] operator +(int[] arr1, int[] arr2)
{
for (int i = 0; i < arr2.Length; i++)
{
arr1[i] += arr2[i];
if (arr1[i] > 9)
{
int sign = i;
do
{
arr1[sign + 1] += arr1[sign] / 10;
arr1[sign] = arr1[sign] % 10;
sign += 1;
} while (arr1[sign] > 9);
}
}
return arr1;
}

解决方案 »

  1.   

    好像是只能在自己写的类里面写重载吧,所以请参考如下示例:
    把 int[] 用其他的类包装一下再计算。
    public class iii
    {
        public static implicit operator int(iii x)
        {
            return 0;
        }
        public static implicit operator iii(int x)
        {
            return null;
        }
        public static int operator +(int aa, iii bb)    
        {
            return 0;
        }
    }
      

  2.   

    public class IntArray
    {
        public static implicit operator int[](IntArray x)
        {
            return x.data;
        }
        public static implicit operator IntArray(int[] data)
        {
            return new IntArray(data);
        }
        int[] data;
        public IntArray(int[] data) { this.data = data; }    /// <summary>
        /// 两个int型数组相加
        /// </summary>
        /// <param name="arr1"></param>
        /// <param name="arr2"></param>
        /// <returns></returns>
        public static IntArray operator +(int[] arr1, IntArray arr)
        {
            //int[] arr1 = arr;
            int[] arr2 = arr;
            for (int i = 0; i < arr2.Length; i++)
            {
                arr1[i] += arr2[i];
                if (arr1[i] > 9)
                {
                    int sign = i;
                    do
                    {
                        arr1[sign + 1] += arr1[sign] / 10;
                        arr1[sign] = arr1[sign] % 10;
                        sign += 1;
                    } while (arr1[sign] > 9);
                }
            }
            return arr1;
        }
    }
      

  3.   


    多谢,我自己顶一个了一个IntArrayPlus类,类只有一个属性IntArray然后重载运算符public static int[] operator +(int[] arr1, IntArrayPlus arrP2)固然就实现了。。哈哈