0

次のBigIntような関数を持つC#のクラスがあります

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

などで、BigInt は文字列または int で構築できます。複数のコンストラクタを使用してもかまいません。しかし、これらの算術関数を (BigInt ではなく) int で呼び出したい場合は、次のようにします。

this.Multiply(int a);

同じ Multiply 関数を入力 int のように再定義する必要があります

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

では、これを 1 つのコードで処理するにはどうすればよいでしょうか。デフォルトのパラメータは、これらのうちの 1 つだけを許可すると思います (たとえば、BigInt だけで int は許可しない、またはその逆)。

前もって感謝します..

4

2 に答える 2

3

intからへの暗黙的な変換を作成する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 に答える