Aracılığıyla paylaş


Complex.Explicit Operatör

Tanım

Bir nesne ile başka bir tür arasında açık bir Complex dönüştürme tanımlar.

Aşırı Yüklemeler

Explicit(UInt128 to Complex)

Bir değeri açıkça çift duyarlıklı karmaşık bir sayıya dönüştürür UInt128 .

Explicit(BigInteger to Complex)

Bir değerin karmaşık bir BigInteger sayıya açık bir dönüştürmesini tanımlar.

Explicit(Decimal to Complex)

Bir değerin karmaşık bir Decimal sayıya açık bir dönüştürmesini tanımlar.

Explicit(Int128 to Complex)

Bir değeri açıkça çift duyarlıklı karmaşık bir sayıya dönüştürür Int128 .

Explicit(UInt128 to Complex)

Kaynak:
Complex.cs
Kaynak:
Complex.cs
Kaynak:
Complex.cs

Önemli

Bu API, CLS uyumlu değildir.

Bir değeri açıkça çift duyarlıklı karmaşık bir sayıya dönüştürür 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

Parametreler

value
UInt128

Dönüştürülecek değer.

Döndürülenler

value çift duyarlıklı karmaşık sayıya dönüştürülür.

Öznitelikler

Şunlara uygulanır

Explicit(BigInteger to Complex)

Kaynak:
Complex.cs
Kaynak:
Complex.cs
Kaynak:
Complex.cs

Bir değerin karmaşık bir BigInteger sayıya açık bir dönüştürmesini tanımlar.

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

Parametreler

value
BigInteger

Karmaşık bir sayıya dönüştürülecek değer.

Döndürülenler

Gerçek bileşene eşit ve sıfıra eşit value bir sanal bileşene sahip karmaşık bir sayı.

Örnekler

Aşağıdaki örnekte, değerlerin değerlere açıkça dönüştürülmesi BigIntegerComplex gösterilmektedir.

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)

Açıklamalar

Açık dönüştürme işleçleri, nesneye Complex dönüştürülebilecek türleri tanımlar. Veri kaybı içerebileceğinden dil derleyicileri bu dönüştürmeyi otomatik olarak gerçekleştirmez. Bunun yerine, dönüştürmeyi yalnızca bir atama işleci (C#'ta) veya dönüştürme işlevi (Visual Basic'te olduğu gibi CType ) kullanılırsa gerçekleştirir. Aksi takdirde, bir derleyici hatası görüntüler.

Bir değerin BigInteger karmaşık sayının gerçek bölümüne dönüştürülmesi, karmaşık sayının Real özelliğinin türü olan bir Doubledeğerinin değerinden daha az anlamlı basamağı olduğundan duyarlık kaybına BigIntegerneden olabilir.

Değer türün aralığının BigIntegerDouble dışında olduğundan dönüştürme başarısız olursa, işlem bir OverflowExceptionoluşturmaz. Bunun yerine, değerinden küçükse value sonuç, değerine eşit NegativeInfinitybir özellik değerine sahip karmaşık bir Real sayıdır.MinValue değerinden büyükse value sonuç, değerine eşit PositiveInfinitybir özellik değerine sahip karmaşık bir Real sayıdır.MaxValue

Şunlara uygulanır

Explicit(Decimal to Complex)

Kaynak:
Complex.cs
Kaynak:
Complex.cs
Kaynak:
Complex.cs

Bir değerin karmaşık bir Decimal sayıya açık bir dönüştürmesini tanımlar.

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

Parametreler

value
Decimal

Karmaşık bir sayıya dönüştürülecek değer.

Döndürülenler

Gerçek bileşene eşit ve sıfıra eşit value bir sanal bileşene sahip karmaşık bir sayı.

Örnekler

Aşağıdaki örnekte, değerlerin değerlere açıkça dönüştürülmesi DecimalComplex gösterilmektedir.

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)

Açıklamalar

Açık dönüştürme işleçleri, nesneye Complex dönüştürülebilecek türleri tanımlar. Veri kaybı içerebileceğinden dil derleyicileri bu dönüştürmeyi otomatik olarak gerçekleştirmez. Bunun yerine, dönüştürmeyi yalnızca bir atama işleci (C#'ta) veya dönüştürme işlevi (Visual Basic'te olduğu gibi CType ) kullanılırsa gerçekleştirir. Aksi takdirde, bir derleyici hatası görüntüler.

Bir değerin Decimal karmaşık sayının gerçek bölümüne dönüştürülmesi, karmaşık sayının Real özelliğinin türü olan bir Doubledeğerinin değerinden daha az anlamlı basamağı olduğundan duyarlık kaybına Decimalneden olabilir.

Şunlara uygulanır

Explicit(Int128 to Complex)

Kaynak:
Complex.cs
Kaynak:
Complex.cs
Kaynak:
Complex.cs

Bir değeri açıkça çift duyarlıklı karmaşık bir sayıya dönüştürür 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

Parametreler

value
Int128

Dönüştürülecek değer.

Döndürülenler

value çift duyarlıklı karmaşık sayıya dönüştürülür.

Şunlara uygulanır