Aracılığıyla paylaş


Dönüşüm İşleçleri Kullanma (C# Programlama Kılavuzu)

Kullanımı daha kolay olan implicit dönüştürme aracını veya dönüştürdüğünüz türün kodunu okuyan herkesin açıkça belirtilen explicit dönüştürme aracını kullanabilirsiniz.Bu konu,r iki türünü birden gösterir.

[!NOT]

Basit tür dönüştürmeleri hakkında daha fazla bilgi için bkz: Nasıl yapılır: Bir Dizeyi Sayıya Dönüştürme (C# Programlama Kılavuzu), Nasıl yapılır: byte Dizisini int'e Dönüştürme (C# Programlama Kılavuzu), Nasıl yapılır: Onaltılık Dizeler ve Sayısal Türler Arasında Dönüştürme (C# Programlama Kılavuzu) veya Convert

Örnek

Açıkça dönüştürme aracı örneğidir.Bu araç Byte türünden Digit olarak çağırılan değer türüne dönüştürür.Tüm baytlar bir basamak değerine dönüştürülebilir olmadığından, dönüştürme açıktır. Bu Main yönteminde gösterildiği gibi kullanılması gerektiği anlamına gelir.

struct Digit
{
    byte value;

    public Digit(byte value)  //constructor
    {
        if (value > 9)
        {
            throw new System.ArgumentException();
        }
        this.value = value;
    }

    public static explicit operator Digit(byte b)  // explicit byte to digit conversion operator
    {
        Digit d = new Digit(b);  // explicit conversion

        System.Console.WriteLine("Conversion occurred.");
        return d;
    }
}

class TestExplicitConversion
{
    static void Main()
    {
        try
        {
            byte b = 3;
            Digit d = (Digit)b;  // explicit conversion
        }
        catch (System.Exception e)
        {
            System.Console.WriteLine("{0} Exception caught.", e);
        }
    }
}
// Output: Conversion occurred.

Bu örnek, önceki örnekte ne yaptığını geri alan bir dönüştürme aracı tanımlayarak bir kapalı dönüştürme aracı gösterir: bu Digit olarak adlandırılan değer sınıfını Byte integral türüne dönüştürür.Herhangi bir rakam bir Byte a dönüştürülebilir olduğundan, kullanıcıların dönüştürme hakkında açık olmasını zorlamaya gerek yoktur.

struct Digit
{
    byte value;

    public Digit(byte value)  //constructor
    {
        if (value > 9)
        {
            throw new System.ArgumentException();
        }
        this.value = value;
    }

    public static implicit operator byte(Digit d)  // implicit digit to byte conversion operator
    {
        System.Console.WriteLine("conversion occurred");
        return d.value;  // implicit conversion
    }
}

class TestImplicitConversion
{
    static void Main()
    {
        Digit d = new Digit(3);
        byte b = d;  // implicit conversion -- no cast needed
    }
}
// Output: Conversion occurred.

Ayrıca bkz.

Başvuru

Dönüşüm İşleçleri (C# Programlama Kılavuzu)

is (C# Başvurusu)

Kavramlar

C# Programlama Kılavuzu

Diğer Kaynaklar

C# Başvurusu