BigInteger.Multiply(BigInteger, BigInteger) 方法

定义

返回两个 BigInteger 值的乘积。

public:
 static System::Numerics::BigInteger Multiply(System::Numerics::BigInteger left, System::Numerics::BigInteger right);
public static System.Numerics.BigInteger Multiply (System.Numerics.BigInteger left, System.Numerics.BigInteger right);
static member Multiply : System.Numerics.BigInteger * System.Numerics.BigInteger -> System.Numerics.BigInteger
Public Shared Function Multiply (left As BigInteger, right As BigInteger) As BigInteger

参数

left
BigInteger

要相乘的第一个数。

right
BigInteger

要相乘的第二个数。

返回

leftright 参数的乘积。

示例

以下示例尝试使用两个长整数执行乘法。 由于结果超出了长整型的范围, OverflowException 因此会引发 ,并 Multiply 调用 方法来处理乘法。 请注意,C# 要求使用checked关键字 (keyword) ((如此示例) )或/checked+编译器选项来确保在数字溢出时引发异常。

long number1 = 1234567890;
long number2 = 9876543210;
try
{
   long product;
   product = checked(number1 * number2);
}
catch (OverflowException)
{
   BigInteger product;
   product = BigInteger.Multiply(number1, number2);
   Console.WriteLine(product.ToString());
   }
let number1 = 1234567890L
let number2 = 9876543210L

try

    let product: int64 = Checked.(*) number1 number2
    ()
with :? OverflowException ->
    let product = BigInteger.Multiply(number1, number2)
    printfn $"{product}"
Dim number1 As Long = 1234567890
Dim number2 As Long = 9876543210
Try
   Dim product As Long
   product = number1 * number2
   Console.WriteLine(product.ToString("N0"))
Catch e As OverflowException
   Dim product As BigInteger
   product = BigInteger.Multiply(number1, number2)
   Console.WriteLine(product.ToString)
End Try

注解

方法 Multiply 针对不支持运算符重载的语言实现。 其行为与使用乘法运算符的乘法相同。 此外, Multiply 方法在实例化 BigInteger 变量时,通过为变量分配乘法产生的乘积来替代乘法运算符,非常有用,如以下示例所示。

// The statement
//    BigInteger number = Int64.MaxValue * 3;
// produces compiler error CS0220: The operation overflows at compile time in checked mode.
// The alternative:
BigInteger number = BigInteger.Multiply(Int64.MaxValue, 3);
let number = BigInteger.Multiply(Int64.MaxValue, 3);
' The statement
'    Dim number As BigInteger = Int64.MaxValue * 3
' produces compiler error BC30439: Constant expression not representable in type 'Long'.
' The alternative:
Dim number As BigInteger = BigInteger.Multiply(Int64.MaxValue, 3)

如有必要,此方法会自动执行其他整型类型到 BigInteger 对象的隐式转换。 下一部分中的示例对此进行了说明,其中 方法 Multiply 传递了两个 Int64 值。

适用于

另请参阅