Udostępnij za pośrednictwem


Complex.Explicit Operator

Definicja

Definiuje jawną konwersję między obiektem a innym typem Complex .

Przeciążenia

Explicit(UInt128 to Complex)

Jawnie konwertuje UInt128 wartość na liczbę zespolonej o podwójnej precyzji.

Explicit(BigInteger to Complex)

Definiuje jawną konwersję BigInteger wartości na liczbę zespolonej.

Explicit(Decimal to Complex)

Definiuje jawną konwersję Decimal wartości na liczbę zespolonej.

Explicit(Int128 to Complex)

Jawnie konwertuje Int128 wartość na liczbę zespolonej o podwójnej precyzji.

Explicit(UInt128 to Complex)

Źródło:
Complex.cs
Źródło:
Complex.cs
Źródło:
Complex.cs

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Jawnie konwertuje UInt128 wartość na liczbę zespolonej o podwójnej precyzji.

public:
 static explicit operator System::Numerics::Complex(UInt128 value);
[System.CLSCompliant(false)]
public static explicit operator System.Numerics.Complex (UInt128 value);
[<System.CLSCompliant(false)>]
static member op_Explicit : UInt128 -> System.Numerics.Complex
Public Shared Narrowing Operator CType (value As UInt128) As Complex

Parametry

value
UInt128

Wartość do konwersji.

Zwraca

value przekonwertowany na liczbę zespolonej o podwójnej precyzji.

Atrybuty

Dotyczy

Explicit(BigInteger to Complex)

Źródło:
Complex.cs
Źródło:
Complex.cs
Źródło:
Complex.cs

Definiuje jawną konwersję BigInteger wartości na liczbę zespolonej.

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 konwersji na liczbę zespolonej.

Zwraca

Liczba zespolona, która ma rzeczywisty składnik równy value i wyimaginowany składnik równy zero.

Przykłady

Poniższy przykład ilustruje jawną konwersję BigInteger wartości na Complex wartości.

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)
    let numbers =
        [ (bigint Double.MaxValue) * 2I
          BigInteger.Parse "901345277852317852466891423"
          BigInteger.One ]

    for number in numbers do
        let c1 = Complex(float number, 0.)
        printfn $"{number, 30}  -->  {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

Jawne operatory konwersji definiują typy, które można przekonwertować na Complex obiekt. Kompilatory języka nie wykonują tej konwersji automatycznie, ponieważ mogą one obejmować utratę danych. Zamiast tego wykonują konwersję tylko wtedy, gdy jest używany operator rzutowania (w języku C#) lub funkcja konwersji (np CType . w Visual Basic). W przeciwnym razie wyświetlają błąd kompilatora.

Konwersja BigInteger wartości na rzeczywistą część liczby zespolonej może spowodować utratę dokładności, ponieważ Doublewłaściwość , która jest typem właściwości liczby Real zespolonej, ma mniej cyfr znaczących niż BigInteger.

Jeśli konwersja nie powiedzie się, ponieważ BigInteger wartość jest poza zakresem Double typu, operacja nie zgłasza OverflowExceptionwartości . Zamiast tego, jeśli value wartość jest mniejsza niż MinValue, wynikiem jest liczba zespolona, która ma wartość właściwości równą RealNegativeInfinity. Jeśli value wartość jest większa niż MaxValue, wynikiem jest liczba zespolona, która ma wartość właściwości równą RealPositiveInfinity.

Dotyczy

Explicit(Decimal to Complex)

Źródło:
Complex.cs
Źródło:
Complex.cs
Źródło:
Complex.cs

Definiuje jawną konwersję Decimal wartości na liczbę zespolonej.

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 konwersji na liczbę zespolonej.

Zwraca

Liczba zespolona, która ma rzeczywisty składnik równy value i wyimaginowany składnik równy zero.

Przykłady

Poniższy przykład ilustruje jawną konwersję Decimal wartości na Complex wartości.

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)
    let numbers = [ Decimal.MinValue; -18.35m; 0m; 1893.019m; Decimal.MaxValue ]

    for number in numbers do
        let c1 = Complex(float number, 0.)
        printfn $"{number, 30}  -->  {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

Jawne operatory konwersji definiują typy, które można przekonwertować na Complex obiekt. Kompilatory języka nie wykonują tej konwersji automatycznie, ponieważ mogą one obejmować utratę danych. Zamiast tego wykonują konwersję tylko wtedy, gdy jest używany operator rzutowania (w języku C#) lub funkcja konwersji (np CType . w Visual Basic). W przeciwnym razie wyświetlają błąd kompilatora.

Konwersja Decimal wartości na rzeczywistą część liczby zespolonej może spowodować utratę dokładności, ponieważ Doublewłaściwość , która jest typem właściwości liczby Real zespolonej, ma mniej cyfr znaczących niż Decimal.

Dotyczy

Explicit(Int128 to Complex)

Źródło:
Complex.cs
Źródło:
Complex.cs
Źródło:
Complex.cs

Jawnie konwertuje Int128 wartość na liczbę zespolonej o podwójnej precyzji.

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

Parametry

value
Int128

Wartość do konwersji.

Zwraca

value przekonwertowany na liczbę zespolonej o podwójnej precyzji.

Dotyczy