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


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
Исходный код:
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
Исходный код:
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исключение. Вместо этого, если valueMinValueменьше, результатом является комплексное число, которое имеет Real значение свойства, равное NegativeInfinity. Если value значение больше MaxValue, результатом является комплексное число, которое имеет Real значение свойства, равное PositiveInfinity.

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

Explicit(Decimal to Complex)

Исходный код:
Complex.cs
Исходный код:
Complex.cs
Исходный код:
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
Исходный код:
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 преобразуется в комплексное число двойной точности.

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