Sdílet prostřednictvím


Complex.Explicit Operátor

Definice

Definuje explicitní převod mezi objektem a jiným typem Complex .

Přetížení

Name Description
Explicit(UInt128 to Complex)

Explicitně převede UInt128 hodnotu na komplexní číslo s dvojitou přesností.

Explicit(BigInteger to Complex)

Definuje explicitní převod BigInteger hodnoty na komplexní číslo.

Explicit(Decimal to Complex)

Definuje explicitní převod Decimal hodnoty na komplexní číslo.

Explicit(Int128 to Complex)

Explicitně převede Int128 hodnotu na komplexní číslo s dvojitou přesností.

Explicit(UInt128 to Complex)

Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Explicitně převede UInt128 hodnotu na komplexní číslo s dvojitou přesností.

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

Hodnota, kterou chcete převést.

Návraty

value převedeno na komplexní číslo s dvojitou přesností.

Atributy

Platí pro

Explicit(BigInteger to Complex)

Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs

Definuje explicitní převod BigInteger hodnoty na komplexní číslo.

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

Hodnota, která se má převést na komplexní číslo.

Návraty

Komplexní číslo, které má reálnou komponentu rovnou value a imaginární komponentu rovnou nule.

Příklady

Následující příklad znázorňuje explicitní převod BigInteger hodnot na Complex hodnoty.

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)

Poznámky

Explicitní převodní operátory definují typy, které lze převést na Complex objekt. Kompilátory jazyka neprovádějí tento převod automaticky, protože mohou zahrnovat ztrátu dat. Místo toho provádějí převod pouze v případě, že se použije operátor přetypování (v jazyce C#) nebo funkce převodu (například CType v jazyce Visual Basic). V opačném případě zobrazí chybu kompilátoru.

Převod BigInteger hodnoty na skutečnou část komplexního čísla může vést ke ztrátě přesnosti, protože Double, což je typ vlastnosti komplexního čísla Real , má méně významných číslic než a BigInteger.

Pokud převod není úspěšný, protože BigInteger hodnota je mimo rozsah Double typu, operace vyvolá výjimku OverflowException. value Pokud je výsledek menší než MinValue, je výsledkem komplexní číslo, které má hodnotu vlastnosti rovnající RealNegativeInfinityse . Pokud value je větší než MaxValue, výsledek je komplexní číslo, které má Real hodnotu vlastnosti rovnající se PositiveInfinity.

Platí pro

Explicit(Decimal to Complex)

Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs

Definuje explicitní převod Decimal hodnoty na komplexní číslo.

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

Hodnota, která se má převést na komplexní číslo.

Návraty

Komplexní číslo, které má reálnou komponentu rovnou value a imaginární komponentu rovnou nule.

Příklady

Následující příklad znázorňuje explicitní převod Decimal hodnot na Complex hodnoty.

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)

Poznámky

Explicitní převodní operátory definují typy, které lze převést na Complex objekt. Kompilátory jazyka neprovádějí tento převod automaticky, protože mohou zahrnovat ztrátu dat. Místo toho provádějí převod pouze v případě, že se použije operátor přetypování (v jazyce C#) nebo funkce převodu (například CType v jazyce Visual Basic). V opačném případě zobrazí chybu kompilátoru.

Převod Decimal hodnoty na skutečnou část komplexního čísla může vést ke ztrátě přesnosti, protože Double, což je typ vlastnosti komplexního čísla Real , má méně významných číslic než a Decimal.

Platí pro

Explicit(Int128 to Complex)

Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs
Zdroj:
Complex.cs

Explicitně převede Int128 hodnotu na komplexní číslo s dvojitou přesností.

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

Hodnota, kterou chcete převést.

Návraty

value převedeno na komplexní číslo s dvojitou přesností.

Platí pro