Sdílet prostřednictvím


Complex.Explicit Operátor

Definice

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

Přetížení

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

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

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á skutečnou 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í operátory převodu definují typy, které lze převést na Complex objekt. Kompilátory jazyků neprovádějí tento převod automaticky, protože může zahrnovat ztrátu dat. Místo toho provádějí převod pouze v případě, že je použit 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ě se zobrazí chyba kompilátoru.

Převod hodnoty na reálnou BigInteger část komplexního čísla může vést ke ztrátě přesnosti, protože Doubleobjekt , který je typem vlastnosti komplexního čísla Real , má méně významných číslic než BigInteger.

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

Platí pro

Explicit(Decimal to Complex)

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á skutečnou 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í operátory převodu definují typy, které lze převést na Complex objekt. Kompilátory jazyků neprovádějí tento převod automaticky, protože může zahrnovat ztrátu dat. Místo toho provádějí převod pouze v případě, že je použit 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ě se zobrazí chyba kompilátoru.

Převod hodnoty na reálnou Decimal část komplexního čísla může vést ke ztrátě přesnosti, protože Doubleobjekt , který je typem vlastnosti komplexního čísla Real , má méně významných číslic než Decimal.

Platí pro

Explicit(Int128 to Complex)

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