Complex.Explicit Opérateur

Définition

Définit une conversion explicite entre un Complex objet et un autre type.

Surcharges

Nom Description
Explicit(Decimal to Complex)

Définit une conversion explicite d’une Decimal valeur en nombre complexe.

Explicit(BigInteger to Complex)

Définit une conversion explicite d’une BigInteger valeur en nombre complexe.

Explicit(Decimal to Complex)

Définit une conversion explicite d’une Decimal valeur en nombre complexe.

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

Paramètres

value
Decimal

Valeur à convertir en nombre complexe.

Retours

Nombre complexe qui a un composant réel égal à value et un composant imaginaire égal à zéro.

Exemples

L’exemple suivant illustre la conversion explicite de Decimal valeurs en Complex valeurs.

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)

Remarques

Les opérateurs de conversion explicite définissent des types qui peuvent être convertis en objet Complex . Les compilateurs de langage n’effectuent pas cette conversion automatiquement, car ils peuvent impliquer une perte de données. Au lieu de cela, ils effectuent la conversion uniquement si un opérateur de cast (en C#) ou une fonction de conversion (par CType exemple, en Visual Basic) est utilisé. Sinon, ils affichent une erreur du compilateur.

La conversion d’une Decimal valeur en partie réelle d’un nombre complexe peut entraîner une perte de précision, car un Double, qui est le type de la propriété du Real nombre complexe, a moins de chiffres significatifs qu’un Decimal.

S’applique à

Explicit(BigInteger to Complex)

Définit une conversion explicite d’une BigInteger valeur en nombre complexe.

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

Paramètres

value
BigInteger

Valeur à convertir en nombre complexe.

Retours

Nombre complexe qui a un composant réel égal à value et un composant imaginaire égal à zéro.

Exemples

L’exemple suivant illustre la conversion explicite de BigInteger valeurs en Complex valeurs.

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)

Remarques

Les opérateurs de conversion explicite définissent des types qui peuvent être convertis en objet Complex . Les compilateurs de langage n’effectuent pas cette conversion automatiquement, car ils peuvent impliquer une perte de données. Au lieu de cela, ils effectuent la conversion uniquement si un opérateur de cast (en C#) ou une fonction de conversion (par CType exemple, en Visual Basic) est utilisé. Sinon, ils affichent une erreur du compilateur.

La conversion d’une BigInteger valeur en partie réelle d’un nombre complexe peut entraîner une perte de précision, car un Double, qui est le type de la propriété du Real nombre complexe, a moins de chiffres significatifs qu’un BigInteger.

Si la conversion échoue, car la BigInteger valeur est hors de la plage du Double type, l’opération ne lève pas .OverflowException Au lieu de cela, si value elle MinValueest inférieure à , le résultat est un nombre complexe dont la valeur de propriété est Real égale à NegativeInfinity. S’il value est supérieur MaxValueà , le résultat est un nombre complexe dont la Real valeur de propriété est égale à PositiveInfinity.

S’applique à