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
Второе число для умножения.
Возвращаемое значение
Произведение параметров left
и right
.
Примеры
В следующем примере пытается выполнить умножение с двумя длинными целыми числами. Поскольку результат превышает диапазон длинного целого числа, OverflowException создается исключение , и Multiply для обработки умножения вызывается метод . Обратите внимание, что для C# необходимо использовать checked
ключевое слово (как в этом примере) или /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 значения.