BigInteger.Multiply(BigInteger, BigInteger) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回两个 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
要相乘的第二个数。
返回
left
与 right
参数的乘积。
示例
以下示例尝试使用两个长整数执行乘法。 由于结果超出了长整型的范围, 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 值。