我在C#中有一个BigInt
类,其功能类似于
public BigInt Multiply(BigInt Other)
public BigInt Exponentiate(BigInt Other)
等。和BigInt可以用字符串或整数构造,可以有多个构造函数。但是当我想用int(而不是BigInt)调用这些算术函数时,比如
this.Multiply(int a);
我必须使用输入int重新定义相同的Multiply函数,如
public BigInt Multiply(int other)
{
BigInt Other = new BigInt(other);
//rest of the code same
}
那么如何在一段代码中处理这个呢? 我认为默认参数只允许其中一个(例如只是BigInt而不是int,反之亦然)。
提前致谢..
答案 0 :(得分:3)
创建从int
到BigInt
public static implicit operator BigInt(int value)
{
return new BigInt(value);
}
然后你只需要一个带BigInt
参数的重载:
BigInt bigInt = ...
BigInt mult = bigInt.Multiply(5);
答案 1 :(得分:1)
如何根据BigInt实现每个int重载?:
public BigInt Multiply(int a)
{
return Multiply(new BigInt(a));
}