Complex.Explicit Operador

Definição

Define uma conversão explícita entre um objeto Complex e outro tipo.Defines an explicit conversion between a Complex object and another type.

Sobrecargas

Explicit(Decimal to Complex)

Define uma conversão explícita de um valor Decimal para um número complexo.Defines an explicit conversion of a Decimal value to a complex number.

Explicit(BigInteger to Complex)

Define uma conversão explícita de um valor BigInteger para um número complexo.Defines an explicit conversion of a BigInteger value to a complex number.

Explicit(Decimal to Complex)

Define uma conversão explícita de um valor Decimal para um número complexo.Defines an explicit conversion of a Decimal value to a complex number.

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

O valor a ser convertido em um número complexo.The value to convert to a complex number.

Retornos

Complex

Um número complexo que tem um componente real igual a value e um componente imaginário igual a zero.A complex number that has a real component equal to value and an imaginary component equal to zero.

Exemplos

O exemplo a seguir ilustra a conversão explícita de Decimal valores em Complex valores.The following example illustrates the explicit conversion of Decimal values to Complex values.

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)
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)

Comentários

Operadores de conversão explícitos definem tipos que podem ser convertidos em um Complex objeto.Explicit conversion operators define types that can be converted to a Complex object. Os compiladores de linguagem não executam essa conversão automaticamente porque podem envolver a perda de dados.Language compilers do not perform this conversion automatically because it can involve data loss. Em vez disso, eles executam a conversão somente se um operador de conversão (em C#) ou uma função de conversão (como CType em Visual Basic) for usado.Instead, they perform the conversion only if a casting operator (in C#) or a conversion function (such as CType in Visual Basic) is used. Caso contrário, eles exibirão um erro do compilador.Otherwise, they display a compiler error.

A conversão de um Decimal valor para a parte real de um número complexo pode resultar em uma perda de precisão porque um Double , que é o tipo da Propriedade do número complexo Real , tem menos dígitos significativos do que um Decimal .The conversion of a Decimal value to the real part of a complex number can result in a loss of precision because a Double, which is the type of the complex number's Real property, has fewer significant digits than a Decimal.

Aplica-se a

Explicit(BigInteger to Complex)

Define uma conversão explícita de um valor BigInteger para um número complexo.Defines an explicit conversion of a BigInteger value to a complex number.

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

O valor a ser convertido em um número complexo.The value to convert to a complex number.

Retornos

Complex

Um número complexo que tem um componente real igual a value e um componente imaginário igual a zero.A complex number that has a real component equal to value and an imaginary component equal to zero.

Exemplos

O exemplo a seguir ilustra a conversão explícita de BigInteger valores em Complex valores.The following example illustrates the explicit conversion of BigInteger values to Complex values.

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)
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)      

Comentários

Operadores de conversão explícitos definem tipos que podem ser convertidos em um Complex objeto.Explicit conversion operators define types that can be converted to a Complex object. Os compiladores de linguagem não executam essa conversão automaticamente porque podem envolver a perda de dados.Language compilers do not perform this conversion automatically because it can involve data loss. Em vez disso, eles executam a conversão somente se um operador de conversão (em C#) ou uma função de conversão (como CType em Visual Basic) for usado.Instead, they perform the conversion only if a casting operator (in C#) or a conversion function (such as CType in Visual Basic) is used. Caso contrário, eles exibirão um erro do compilador.Otherwise, they display a compiler error.

A conversão de um BigInteger valor para a parte real de um número complexo pode resultar em uma perda de precisão porque um Double , que é o tipo da Propriedade do número complexo Real , tem menos dígitos significativos do que um BigInteger .The conversion of a BigInteger value to the real part of a complex number can result in a loss of precision because a Double, which is the type of the complex number's Real property, has fewer significant digits than a BigInteger.

Se a conversão não for bem-sucedida porque o BigInteger valor está fora do intervalo do Double tipo, a operação não lança um OverflowException .If the conversion is unsuccessful because the BigInteger value is out of the range of the Double type, the operation does not throw an OverflowException. Em vez disso, se value for menor que MinValue , o resultado será um número complexo que tem um Real valor de propriedade igual a NegativeInfinity .Instead, if value is less than MinValue, the result is a complex number that has a Real property value equal to NegativeInfinity. Se value for maior que MaxValue , o resultado será um número complexo que tem um Real valor de propriedade igual a PositiveInfinity .If value is greater than MaxValue, the result is a complex number that has a Real property value equal to PositiveInfinity.

Aplica-se a