Complex.Explicit Operatore

Definizione

Definisce una conversione esplicita tra un oggetto Complex e un altro tipo.Defines an explicit conversion between a Complex object and another type.

Overload

Explicit(Decimal to Complex)

Definisce una conversione esplicita di un valore Decimal in un numero complesso.Defines an explicit conversion of a Decimal value to a complex number.

Explicit(BigInteger to Complex)

Definisce una conversione esplicita di un valore BigInteger in un numero complesso.Defines an explicit conversion of a BigInteger value to a complex number.

Explicit(Decimal to Complex)

Definisce una conversione esplicita di un valore Decimal in un numero complesso.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

Parametri

value
Decimal

Valore da convertire in un numero complesso.The value to convert to a complex number.

Restituisce

Numero complesso contenente un componente reale uguale a value e un componente immaginario uguale a zero.A complex number that has a real component equal to value and an imaginary component equal to zero.

Esempi

Nell'esempio seguente viene illustrata la conversione esplicita dei valori Decimal in Complex valori.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)

Commenti

Gli operatori di conversione espliciti definiscono i tipi che possono essere convertiti in un oggetto Complex.Explicit conversion operators define types that can be converted to a Complex object. I compilatori di linguaggio non eseguono automaticamente questa conversione perché può comportare la perdita di dati.Language compilers do not perform this conversion automatically because it can involve data loss. Ma eseguono la conversione solo se viene usato un operatore di cast ( C#in) o una funzione di conversione, ad esempio CType in Visual Basic.Instead, they perform the conversion only if a casting operator (in C#) or a conversion function (such as CType in Visual Basic) is used. In caso contrario, viene visualizzato un errore del compilatore.Otherwise, they display a compiler error.

La conversione di un valore Decimal nella parte reale di un numero complesso può comportare una perdita di precisione perché una Double, che è il tipo della proprietà Real del numero complesso, ha meno cifre significative rispetto a una 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.

Explicit(BigInteger to Complex)

Definisce una conversione esplicita di un valore BigInteger in un numero complesso.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

Parametri

value
BigInteger

Valore da convertire in un numero complesso.The value to convert to a complex number.

Restituisce

Numero complesso contenente un componente reale uguale a value e un componente immaginario uguale a zero.A complex number that has a real component equal to value and an imaginary component equal to zero.

Esempi

Nell'esempio seguente viene illustrata la conversione esplicita dei valori BigInteger in Complex valori.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)      

Commenti

Gli operatori di conversione espliciti definiscono i tipi che possono essere convertiti in un oggetto Complex.Explicit conversion operators define types that can be converted to a Complex object. I compilatori di linguaggio non eseguono automaticamente questa conversione perché può comportare la perdita di dati.Language compilers do not perform this conversion automatically because it can involve data loss. Ma eseguono la conversione solo se viene usato un operatore di cast ( C#in) o una funzione di conversione, ad esempio CType in Visual Basic.Instead, they perform the conversion only if a casting operator (in C#) or a conversion function (such as CType in Visual Basic) is used. In caso contrario, viene visualizzato un errore del compilatore.Otherwise, they display a compiler error.

La conversione di un valore BigInteger nella parte reale di un numero complesso può comportare una perdita di precisione perché una Double, che è il tipo della proprietà Real del numero complesso, ha meno cifre significative rispetto a una 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 la conversione ha esito negativo perché il valore BigInteger non è compreso nell'intervallo del tipo di Double, l'operazione non genera alcun 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. Se invece value è minore di MinValue, il risultato è un numero complesso con un valore della proprietà Real uguale 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 è maggiore di MaxValue, il risultato è un numero complesso con un valore della proprietà Real uguale a PositiveInfinity.If value is greater than MaxValue, the result is a complex number that has a Real property value equal to PositiveInfinity.

Si applica a