0

BigInt在 C# 中有一个类,它具有如下功能

public BigInt Multiply(BigInt Other)
public BigInt Exponentiate(BigInt Other)

等等,BigInt 可以用字符串或整数构造,可以有多个构造函数。但是当我想用int(而不是BigInt)调用这些算术函数时

this.Multiply(int a);

我必须使用输入 int 重新定义相同的乘法函数,例如

public BigInt Multiply(int other)
{
BigInt Other = new BigInt(other);
//rest of the code same
}

那么我怎样才能在一段代码中处理这个呢?我认为默认参数将只允许其中之一(例如,仅 BigInt 但不允许 int,反之亦然)。

提前致谢..

4

2 回答 2

3

创建从intto的隐式转换BigInt

public static implicit operator BigInt(int value)
{
    return new BigInt(value);
}

那么你只需要一个带BigInt参数的重载:

BigInt bigInt = ...
BigInt mult = bigInt.Multiply(5);
于 2012-12-29T21:51:46.547 回答
1

仅根据 BigInt 实现每个 int 重载怎么样?:

public BigInt Multiply(int a)
{
    return Multiply(new BigInt(a));
}
于 2012-12-29T21:53:50.547 回答