noisiv 1
noisiv
Manwe Work 1
Manwe Work
mavzermete 1
mavzermete
darkbey42 1
darkbey42
xranzei 1
xranzei
Bvural41 1
Bvural41
PrimeAC 1
PrimeAC
Payidar2 1
Payidar2
Fethi Polat 1
Fethi Polat
Wizard' 1
Wizard'
shrpnl 1
shrpnl
Queinn 1
Queinn
Hikaye Ekle

Boxing ve Unboxing

  • Konuyu başlatan Konuyu başlatan ßyMesMes
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 528

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

[FONT=Verdana, Arial, Helvetica, sans-serif]Boxing, değer türünden bir değişkeni referans türünden bir değişkene aktarmaktır. Unboxing ise bunun tam tersi yani referans türünden bir değişkeni değer türünden bir değişkene aktarmaktır.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Boxing işlemi için aşağıdaki gibi bir örnek uygulama yapalım:[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Module Module1[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Sub Main()[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Dim mesaj As String[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Dim boxing As Object[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] mesaj = "İlk mesajımız"[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] boxing = mesaj[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(mesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] mesaj = "Yeni Mesajımız"[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(mesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.ReadLine()[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] End Sub[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]End Module[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Kodumuzu çalıştırdığımızda[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]İlk Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]İlk Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Yeni Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]İlk Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Şeklinde çıktı verdiğini görürüz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Kodumuzu adım adım açıklayalım;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Kodumuzda görüldüğü gibi boxing değişkenini object tipinde tanımlayarak referans tipinde bir değişken elde ettik. Mesaj değişkenini ise string türünde tanımlayarak değer tipinde bir değişken elde ettik. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]mesaj = "İlk mesajımız"[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]satırı ile mesaj değişkenine “İlk mesajımız” değeri aktarılmıştır. Mesaj değişkeni değer türünden bir değişken olduğu için “İlk mesajımız” değerinin bir kopyası hafızada saklanacaktır.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Boxing=mesaj[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Satırı ile değer türünden olan mesaj değişkenini, referans türünden olan boxing değişkenine aktardık.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Console.WriteLine(mesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Komut satırı ile mesaj değişkeninin içeriği olan “İlk mesajımız” yazısını ekrana yazdırdık.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Console.WriteLine(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Satırı ile, boxing değişkenini mesaj değişkenine eşitlediğimiz için boxing değişkeninin içeriğini yazdırdığımızda da “İlk mesajımız” yazısını ekrana geldi.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]mesaj = "Yeni Mesajımız" [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]satırı ile mesaj değişkeninin içeriğini değiştirerek “Yeni Mesajımız” değerini aktardık.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Console.WriteLine(mesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Satırında mesaj değişkeninin içeriğini değiştirdiğimiz için “Yeni Mesajımız” değerini ekrana yazmaktadır.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Console.WriteLine(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Satırında ise mesaj değişkeninin içeriğinde yapılan değişiklik object türünden olan boxing değişkenimize yansımamıştır. Çünkü boxing işlemi ile boxing değişkeni, mesaj değişkeninin hafızadaki kopyasını görüntülemektedir. Mesaj değişkeninin içeriğinde yapılan değişiklik ise mesaj değişkeninin hafızadaki gerçek değerini değiştirdiği için yapılan bu değişiklik boxing değişkeninin içeriğini etkilememektedir. Dolayısı ile ekranda mesaj değişkeninin ilk kopya değeri olan “İlk mesajımız” değeri görüntülenmektedir.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]UnBoxing işlemi için aşağıdaki gibi bir örnek uygulama yapalım:[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Module Module1[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Sub Main()[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Dim mesaj As String[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Dim boxing As Object[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] mesaj = "İlk mesajımız"[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] boxing = mesaj[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(mesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] mesaj = "Yeni Mesajımız"[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(mesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Dim digermesaj As String = CStr(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.WriteLine(digermesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] Console.ReadLine()[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] End Sub[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]End Module[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Kodumuzu çalıştırdığımızda[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]İlk Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]İlk Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Yeni Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]İlk Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]İlk Mesajımız[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Şeklinde çıktı verdiğini görürüz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Kodumuzda yaptığımız değişiklikleri açıklayalım;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Dim digermesaj As String = CStr(boxing)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Satırı ile digermesaj adlı bir değişken tanımlayarak boxing değişkeninin içeriğini ona aktarıyoruz. Boxing işleminin tersine olarak boxing değişkeninin hafızada belirttiği veri referans türü olarak alınıp digermesaj değişkeninin içeriğine değer tipi olarak kopyalanır. Burada oluşacak tip uyuşmazlığını aşmak için de Cstr fonksiyonu ile referans tipteki verimizin türünü değer tipteki verimizin türüne yani String veri tipine dönüştürüyoruz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Console.WriteLine(digermesaj)[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Satırı ile digermesaj değişkenimizin içeriğini görüntüleriz. Digermesaj değişkeninin içeriğinde artık boxing değişkeninin içerdiği ilk mesaj değişkeninin hafızaya alınmış ilk kopyası olduğu için “İlk mesajımız” şeklinde çıktı üretecektir.[/FONT]
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst