Complex.Explicit Operatör
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir nesne ile başka bir tür arasında açık bir Complex dönüştürme tanımlar.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Explicit(Decimal to Complex) |
Bir değerin karmaşık bir Decimal sayıya açık dönüştürmesini tanımlar. |
| Explicit(BigInteger to Complex) |
Bir değerin karmaşık bir BigInteger sayıya açık dönüştürmesini tanımlar. |
Explicit(Decimal to Complex)
Bir değerin karmaşık bir Decimal sayıya açık 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 olan karmaşık bir sayı ve sıfıra eşit value bir sanal bileşen.
Ö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ıyorsa gerçekleştirir. Aksi takdirde, bir derleyici hatası görüntüler.
Karmaşık sayının özelliğinin Decimal türü olan bir Doubledeğerinin değerinden daha az önemli basamak bulunduğundan, değerin karmaşık sayının Real gerçek bölümüne dönüştürülmesi duyarlık kaybına Decimalneden olabilir.
Şunlara uygulanır
Explicit(BigInteger to Complex)
Bir değerin karmaşık bir BigInteger sayıya açık 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 olan karmaşık bir sayı ve sıfıra eşit value bir sanal bileşen.
Ö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ıyorsa gerçekleştirir. Aksi takdirde, bir derleyici hatası görüntüler.
Karmaşık sayının özelliğinin BigInteger türü olan bir Doubledeğerinin değerinden daha az önemli basamak bulunduğundan, değerin karmaşık sayının Real gerçek bölümüne dönüştürülmesi duyarlık kaybına BigIntegerneden olabilir.
Değer türün aralığının BigInteger dışında olduğundan Double 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 MinValuebir özellik değerine sahip karmaşık bir Real sayıdır.NegativeInfinity değerinden büyüksevalue, sonuç, değerine eşit MaxValuebir özellik değerine sahip karmaşık bir Real sayıdır.PositiveInfinity