Complex.Explicit Operator

Definicja

Definiuje jawną konwersję między Complex obiektem a innym typem.Defines an explicit conversion between a Complex object and another type.

Przeciążenia

Explicit(Decimal to Complex)

Definiuje jawną konwersję Decimal wartości na liczbę zespoloną.Defines an explicit conversion of a Decimal value to a complex number.

Explicit(BigInteger to Complex)

Definiuje jawną konwersję BigInteger wartości na liczbę zespoloną.Defines an explicit conversion of a BigInteger value to a complex number.

Explicit(Decimal to Complex)

Definiuje jawną konwersję Decimal wartości na liczbę zespoloną.Defines an explicit conversion of a Decimal value to a complex number.

public:
 static explicit operator System::Numerics::Complex(System::Decimal value);
public static explicit operator System.Numerics.Complex (decimal value);
static member op_Explicit : decimal -> System.Numerics.Complex
Public Shared Narrowing Operator CType (value As Decimal) As Complex

Parametry

value
Decimal

Wartość do przekonwertowania na liczbę zespoloną.The value to convert to a complex number.

Zwraca

Liczba zespolona, która ma prawdziwy składnik równy value i składnik urojony równy zero.A complex number that has a real component equal to value and an imaginary component equal to zero.

Przykłady

Poniższy przykład ilustruje jawną konwersję Decimal wartości na Complex wartości.The following example illustrates the explicit conversion of Decimal values to Complex values.

decimal[] numbers = { Decimal.MinValue, -18.35m, 0m, 1893.019m, 
                      Decimal.MaxValue };
foreach (decimal number in numbers)
{
   System.Numerics.Complex c1 = (System.Numerics.Complex) number;
   Console.WriteLine("{0,30}  -->  {1}", number, c1);
}   
// The example displays the following output:
//    -79228162514264337593543950335  -->  (-7.92281625142643E+28, 0)
//                            -18.35  -->  (-18.35, 0)
//                                 0  -->  (0, 0)
//                          1893.019  -->  (1893.019, 0)
//     79228162514264337593543950335  -->  (7.92281625142643E+28, 0)
Dim numbers() As Decimal = { Decimal.MinValue, -18.35d, 0d, 1893.019d, 
                             Decimal.MaxValue }
For Each number In numbers
   Dim c1 As System.Numerics.Complex = CType(number, 
                                             System.Numerics.Complex)
   Console.WriteLine("{0,30}  -->  {1}", number, c1)
Next   
' The example displays the following output:
'    -79228162514264337593543950335  -->  (-7.92281625142643E+28, 0)
'                            -18.35  -->  (-18.3500003814697, 0)
'                                 0  -->  (0, 0)
'                          1893.019  -->  (1893.01904296875, 0)
'     79228162514264337593543950335  -->  (7.92281625142643E+28, 0)

Uwagi

Operatory jawnej konwersji definiują typy, które można przekonwertować Complex na obiekt.Explicit conversion operators define types that can be converted to a Complex object. Kompilatory języka nie wykonują tej konwersji automatycznie, ponieważ mogą one zawierać utratę danych.Language compilers do not perform this conversion automatically because it can involve data loss. Zamiast tego wykonuje konwersję tylko wtedy, gdy jest używany operator rzutowania (in C#) lub funkcja konwersji ( CType na przykład w Visual Basic).Instead, they perform the conversion only if a casting operator (in C#) or a conversion function (such as CType in Visual Basic) is used. W przeciwnym razie wyświetla błąd kompilatora.Otherwise, they display a compiler error.

Konwersja Decimal wartości do rzeczywistej części liczby zespolonej może spowodować utratę precyzji Double, ponieważ typ, który jest typem Real Decimalwłaściwości zespolonej, ma mniejszą liczbę cyfr znaczących niż.The conversion of a Decimal value to the real part of a complex number can result in a loss of precision because a Double, which is the type of the complex number's Real property, has fewer significant digits than a Decimal.

Explicit(BigInteger to Complex)

Definiuje jawną konwersję BigInteger wartości na liczbę zespoloną.Defines an explicit conversion of a BigInteger value to a complex number.

public:
 static explicit operator System::Numerics::Complex(System::Numerics::BigInteger value);
public static explicit operator System.Numerics.Complex (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> System.Numerics.Complex
Public Shared Narrowing Operator CType (value As BigInteger) As Complex

Parametry

value
BigInteger

Wartość do przekonwertowania na liczbę zespoloną.The value to convert to a complex number.

Zwraca

Liczba zespolona, która ma prawdziwy składnik równy value i składnik urojony równy zero.A complex number that has a real component equal to value and an imaginary component equal to zero.

Przykłady

Poniższy przykład ilustruje jawną konwersję BigInteger wartości na Complex wartości.The following example illustrates the explicit conversion of BigInteger values to Complex values.

BigInteger[] numbers= {
                 ((BigInteger) Double.MaxValue) * 2, 
                 BigInteger.Parse("901345277852317852466891423"), 
                 BigInteger.One }; 
foreach (BigInteger number in numbers)
{
  Complex c1 = (Complex) number;
   Console.WriteLine(c1);
}        
// The example displays the following output:
//       (Infinity, 0)
//       (9.01345277852318E+26, 0)
//       (1, 0)      
Dim numbers() As BigInteger = {
                 CType(Double.MaxValue, BigInteger) * 2, 
                 BigInteger.Parse("901345277852317852466891423"), 
                 BigInteger.One } 
For Each number In numbers
  Dim c1 As System.Numerics.Complex = CType(number, 
                                    System.Numerics.Complex)
   Console.WriteLine(c1)
Next        
' The example displays the following output:
'       (Infinity, 0)
'       (9.01345277852318E+26, 0)
'       (1, 0)      

Uwagi

Operatory jawnej konwersji definiują typy, które można przekonwertować Complex na obiekt.Explicit conversion operators define types that can be converted to a Complex object. Kompilatory języka nie wykonują tej konwersji automatycznie, ponieważ mogą one zawierać utratę danych.Language compilers do not perform this conversion automatically because it can involve data loss. Zamiast tego wykonuje konwersję tylko wtedy, gdy jest używany operator rzutowania (in C#) lub funkcja konwersji ( CType na przykład w Visual Basic).Instead, they perform the conversion only if a casting operator (in C#) or a conversion function (such as CType in Visual Basic) is used. W przeciwnym razie wyświetla błąd kompilatora.Otherwise, they display a compiler error.

Konwersja BigInteger wartości do rzeczywistej części liczby zespolonej może spowodować utratę precyzji Double, ponieważ typ, który jest typem Real BigIntegerwłaściwości zespolonej, ma mniejszą liczbę cyfr znaczących niż.The conversion of a BigInteger value to the real part of a complex number can result in a loss of precision because a Double, which is the type of the complex number's Real property, has fewer significant digits than a BigInteger.

Jeśli konwersja nie powiedzie się, ponieważ BigInteger wartość znajduje się poza zakresem Double typu, operacja nie generuje elementu OverflowException.If the conversion is unsuccessful because the BigInteger value is out of the range of the Double type, the operation does not throw an OverflowException. Zamiast tego, value jeśli jest mniejsza MinValueniż, wynik jest liczbą Real zespoloną, która ma wartość właściwości równą NegativeInfinity.Instead, if value is less than MinValue, the result is a complex number that has a Real property value equal to NegativeInfinity. Jeśli value jest większa niż MaxValue, wynik jest liczbą Real zespoloną, która ma wartość właściwości równą PositiveInfinity.If value is greater than MaxValue, the result is a complex number that has a Real property value equal to PositiveInfinity.

Dotyczy