Complex.Explicit Оператор

Определение

Определяет явное преобразование между объектом типа Complex и другим типом.Defines an explicit conversion between a Complex object and another type.

Перегрузки

Explicit(Decimal to Complex)

Определяет явное преобразование значения Decimal в комплексное число.Defines an explicit conversion of a Decimal value to a complex number.

Explicit(BigInteger to Complex)

Определяет явное преобразование значения BigInteger в комплексное число.Defines an explicit conversion of a BigInteger value to a complex number.

Explicit(Decimal to Complex)

Определяет явное преобразование значения Decimal в комплексное число.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

Параметры

value
Decimal

Значение, преобразуемое в комплексное число.The value to convert to a complex number.

Возвращаемое значение

Комплексное число, вещественная часть которого равна параметру value, а мнимая часть равна нулю.A complex number that has a real component equal to value and an imaginary component equal to zero.

Примеры

В следующем примере показано явное преобразование значений Decimal в Complex значений.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)

Комментарии

Операторы явного преобразования определяют типы, которые можно преобразовать в объект Complex.Explicit conversion operators define types that can be converted to a Complex object. Компиляторы языков не выполняют это преобразование автоматически, так как это может привести к утрате данных.Language compilers do not perform this conversion automatically because it can involve data loss. Вместо этого они выполняют преобразование только в том случае, если используется оператор C#приведения (in) или функция преобразования (например, CType в 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. В противном случае они выводят ошибку компилятора.Otherwise, they display a compiler error.

Преобразование значения Decimal в реальную часть комплексного числа может привести к утрате точности, поскольку Double, который является типом свойства Real комплексного числа, имеет меньше значимых цифр, чем 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)

Определяет явное преобразование значения BigInteger в комплексное число.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

Параметры

value
BigInteger

Значение, преобразуемое в комплексное число.The value to convert to a complex number.

Возвращаемое значение

Комплексное число, вещественная часть которого равна параметру value, а мнимая часть равна нулю.A complex number that has a real component equal to value and an imaginary component equal to zero.

Примеры

В следующем примере показано явное преобразование значений BigInteger в Complex значений.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)      

Комментарии

Операторы явного преобразования определяют типы, которые можно преобразовать в объект Complex.Explicit conversion operators define types that can be converted to a Complex object. Компиляторы языков не выполняют это преобразование автоматически, так как это может привести к утрате данных.Language compilers do not perform this conversion automatically because it can involve data loss. Вместо этого они выполняют преобразование только в том случае, если используется оператор C#приведения (in) или функция преобразования (например, CType в 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. В противном случае они выводят ошибку компилятора.Otherwise, they display a compiler error.

Преобразование значения BigInteger в реальную часть комплексного числа может привести к утрате точности, поскольку Double, который является типом свойства Real комплексного числа, имеет меньше значимых цифр, чем 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.

Если преобразование завершилось неудачно из-за того, что BigInteger значение выходит за пределы диапазона Double типа, операция не вызывает 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. Вместо этого, если value меньше MinValue, результатом является комплексное число с Real значением свойства, равным NegativeInfinity.Instead, if value is less than MinValue, the result is a complex number that has a Real property value equal to NegativeInfinity. Если value больше MaxValue, результатом является комплексное число со значением свойства Real, равным PositiveInfinity.If value is greater than MaxValue, the result is a complex number that has a Real property value equal to PositiveInfinity.

Применяется к