Поделиться через


Complex.Explicit Оператор

Определение

Определяет явное преобразование между объектом типа Complex и другим типом.

Перегрузки

Explicit(UInt128 to Complex)

Явным образом преобразует значение в UInt128 комплексное число двойной точности.

Explicit(BigInteger to Complex)

Определяет явное преобразование значения BigInteger в комплексное число.

Explicit(Decimal to Complex)

Определяет явное преобразование значения Decimal в комплексное число.

Explicit(Int128 to Complex)

Явным образом преобразует значение в Int128 комплексное число двойной точности.

Explicit(UInt128 to Complex)

Исходный код:
Complex.cs
Исходный код:
Complex.cs
Исходный код:
Complex.cs

Важно!

Этот API несовместим с CLS.

Явным образом преобразует значение в UInt128 комплексное число двойной точности.

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

Параметры

value
UInt128

Преобразуемое значение.

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

value преобразуется в комплексное число двойной точности.

Атрибуты

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

Explicit(BigInteger to Complex)

Исходный код:
Complex.cs
Исходный код:
Complex.cs
Исходный код:
Complex.cs

Определяет явное преобразование значения BigInteger в комплексное число.

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

Значение, преобразуемое в комплексное число.

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

Комплексное число, вещественная часть которого равна параметру value, а мнимая часть равна нулю.

Примеры

В следующем примере показано явное преобразование значений BigInteger в Complex значения.

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)

Комментарии

Операторы явного преобразования определяют типы, которые можно преобразовать в Complex объект . Языковые компиляторы не выполняют это преобразование автоматически, так как это может привести к потере данных. Вместо этого они выполняют преобразование только в том случае, если используется оператор приведения (в C#) или функция преобразования (например CType , в Visual Basic). В противном случае отображается ошибка компилятора.

Преобразование BigInteger значения в веществительную часть комплексного числа может привести к потере точности, так как Double, который является типом свойства комплексного числа Real , имеет меньше значимых цифр, чем BigInteger.

Если преобразование завершается неудачно из-за того, что BigInteger значение выходит за пределы Double диапазона типа, операция не выдает OverflowException. Вместо этого, если value меньше MinValue, результатом является комплексное число, которое имеет Real значение свойства, равное NegativeInfinity. Если value значение больше MaxValue, результатом является комплексное число, которое имеет Real значение свойства, равное PositiveInfinity.

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

Explicit(Decimal to Complex)

Исходный код:
Complex.cs
Исходный код:
Complex.cs
Исходный код:
Complex.cs

Определяет явное преобразование значения Decimal в комплексное число.

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

Значение, преобразуемое в комплексное число.

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

Комплексное число, вещественная часть которого равна параметру value, а мнимая часть равна нулю.

Примеры

В следующем примере показано явное преобразование значений Decimal в Complex значения.

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)

Комментарии

Операторы явного преобразования определяют типы, которые можно преобразовать в Complex объект . Языковые компиляторы не выполняют это преобразование автоматически, так как это может привести к потере данных. Вместо этого они выполняют преобразование только в том случае, если используется оператор приведения (в C#) или функция преобразования (например CType , в Visual Basic). В противном случае отображается ошибка компилятора.

Преобразование Decimal значения в веществительную часть комплексного числа может привести к потере точности, так как Double, который является типом свойства комплексного числа Real , имеет меньше значимых цифр, чем Decimal.

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

Explicit(Int128 to Complex)

Исходный код:
Complex.cs
Исходный код:
Complex.cs
Исходный код:
Complex.cs

Явным образом преобразует значение в Int128 комплексное число двойной точности.

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

Параметры

value
Int128

Преобразуемое значение.

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

value преобразуется в комплексное число двойной точности.

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