/// <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;
}
把 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;
}
}
{
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;
}
}
多谢,我自己顶一个了一个IntArrayPlus类,类只有一个属性IntArray然后重载运算符public static int[] operator +(int[] arr1, IntArrayPlus arrP2)固然就实现了。。哈哈