功能获得不同类型的输入?

时间:2012-12-29 21:47:39

标签: c# types parameters

我在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,反之亦然)。

提前致谢..

2 个答案:

答案 0 :(得分:3)

创建从intBigInt

的隐式转换
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));
}