Comparteix a través de


Complex.Explicit Operador

Definición

Define una conversión explícita entre un objeto Complex y otro tipo.

Sobrecargas

Explicit(UInt128 to Complex)

Convierte explícitamente un UInt128 valor en un número complejo de precisión doble.

Explicit(BigInteger to Complex)

Define una conversión explícita de un valor BigInteger a un número complejo.

Explicit(Decimal to Complex)

Define una conversión explícita de un valor Decimal a un número complejo.

Explicit(Int128 to Complex)

Convierte explícitamente un Int128 valor en un número complejo de precisión doble.

Explicit(UInt128 to Complex)

Source:
Complex.cs
Source:
Complex.cs
Source:
Complex.cs

Importante

Esta API no es conforme a CLS.

Convierte explícitamente un UInt128 valor en un número complejo de precisión doble.

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

Parámetros

value
UInt128

Valor que se va a convertir.

Devoluciones

value convertido en un número complejo de precisión doble.

Atributos

Se aplica a

Explicit(BigInteger to Complex)

Source:
Complex.cs
Source:
Complex.cs
Source:
Complex.cs

Define una conversión explícita de un valor BigInteger a un número complejo.

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

Parámetros

value
BigInteger

Valor que se va a convertir en un número complejo.

Devoluciones

Número complejo con un componente real igual a value y un componente imaginario igual a cero.

Ejemplos

En el ejemplo siguiente se muestra la conversión explícita de BigInteger valores a Complex valores.

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)

Comentarios

Los operadores de conversión explícitos definen tipos que se pueden convertir en un Complex objeto . Los compiladores de lenguaje no realizan esta conversión automáticamente porque pueden implicar la pérdida de datos. En su lugar, realizan la conversión solo si se usa un operador de conversión (en C#) o una función de conversión (como CType en Visual Basic). De lo contrario, muestran un error del compilador.

La conversión de un BigInteger valor a la parte real de un número complejo puede dar lugar a una pérdida de precisión porque , Doubleque es el tipo de la propiedad del Real número complejo, tiene menos dígitos significativos que un BigInteger.

Si la conversión no se realiza correctamente porque el BigInteger valor está fuera del intervalo del Double tipo, la operación no inicia una OverflowExceptionexcepción . En su lugar, si value es menor que MinValue, el resultado es un número complejo que tiene un Real valor de propiedad igual a NegativeInfinity. Si value es mayor que MaxValue, el resultado es un número complejo que tiene un Real valor de propiedad igual a PositiveInfinity.

Se aplica a

Explicit(Decimal to Complex)

Source:
Complex.cs
Source:
Complex.cs
Source:
Complex.cs

Define una conversión explícita de un valor Decimal a un número complejo.

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

Parámetros

value
Decimal

Valor que se va a convertir en un número complejo.

Devoluciones

Número complejo con un componente real igual a value y un componente imaginario igual a cero.

Ejemplos

En el ejemplo siguiente se muestra la conversión explícita de Decimal valores a Complex valores.

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)

Comentarios

Los operadores de conversión explícitos definen tipos que se pueden convertir en un Complex objeto . Los compiladores de lenguaje no realizan esta conversión automáticamente porque pueden implicar la pérdida de datos. En su lugar, realizan la conversión solo si se usa un operador de conversión (en C#) o una función de conversión (como CType en Visual Basic). De lo contrario, muestran un error del compilador.

La conversión de un Decimal valor a la parte real de un número complejo puede dar lugar a una pérdida de precisión porque , Doubleque es el tipo de la propiedad del Real número complejo, tiene menos dígitos significativos que un Decimal.

Se aplica a

Explicit(Int128 to Complex)

Source:
Complex.cs
Source:
Complex.cs
Source:
Complex.cs

Convierte explícitamente un Int128 valor en un número complejo de precisión doble.

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

Parámetros

value
Int128

Valor que se va a convertir.

Devoluciones

value convertido en un número complejo de precisión doble.

Se aplica a