Overloading Kavramı

Visual Basic.Net'te, aynı faaliyet alanı içerisinde, aynı isme sahip birden fazla methot bir arada bulunabilir. Ancak isimleri aynı oan methot'ların birbirlerinden ayırd edilebilmesi için parametrik yapılarının farklı olması zorunluluğu vardır. Nesne Yönetimli programlama tekniğinde bu kavram; "Fonksiyon Overloading" olarak bilinir. Parametrik yapının farklı olmasından kastedilen; fonksiyona geçirilen parametrelerin tr ve sayıca farklı olmasıdır. (Parametre değişkenlerinin, isimlerinin farklı olması yada geri dönüş değerlerindeki farklılık geçersizdir!)

Derleyici, aynı isimle tanımlanmış prosedür'lerden biri çağrıldığında ; çaırma ifadesindeki, prosedüre geçirilen parametrelerin tür ve sayılarına bakarak, tanımlanan metot'lardan hangisini çağırması gerektiğini anlar.

Örnek:

Aşağıdaki konsol uygulamasında parametrik yapıları farklı olan, ancak aynı isme sahip (Display) üç farklı metot bulunmaktadır. Display() metod, main içerisinden, farklı parametrelergeçirilmek süreti ile üç kez çağrılmaktadır.

Module Module1
Public Sub Display()
Console.Writeline("1. Display() metodu çağrıldı")
End Sub

Public Sub Display (ByVal s as String)
Console.Writeline("2. Display() metodu çağrıldı")
End Sub

Public Sub Display(ByVal s as String, ByVal i as integer)
Console.Writeline("3. Display() metodu çağrıldı")
End Sub

Sub Main()
Display("Deneme") '2. Çağrılır
Display("Deneme", 2323) '3. Çağrılır
Display() '1. Çağrılır
End Sub
End Module
 

Visual Studio 2010 ve .NET Framework 4.0 CTP'lerinin yayınlandığı bugünlerde iki yol sonra karşımıza çıkacak yazılım teknolojilerine yön verme ve inceleme adına heyecanlı günler yaşadığımı itiraf edebilirim.

Visual Studio 2008 ve .NET Framework 4.0 yeni logoları.
Visual Studio 2008 ve .NET Framework 4.0 yeni logoları.

Tüm bu yenilikler arasında tabi ki Visual Basic'in de artık 10'uncu sürümü ile karşı karşıyayız. Bu yazıa şu an yayında olan CTP üzerinden yola çıkarak VB 10 ile beraber gelen yenilikleri inceleyeceğiz.

Statement Lambda

Lambda'lara az çok LINQ ile beraber alışmıştık. VB 10 ile beraber çok ilginç ve bir o kadar da güzel bir özellik geliyor. Ama gelin bunun öncesinde VB 9 ile neler yapardık bir göz atalım.

[VB9]

Public Class Form1

 

    Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        MsgBox("Burada")

    End Sub

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        AddHandler Me.Click, AddressOf Form1_Click

    End Sub

End Class

Devamı...

Bugün sizlere biraz Refactoring'den bahsetmek isriyorum. Refactoring'i kaba bir şekilde tanımlamak gerekirse herhangi bir kodun işlevini değiştirmeden yazılışı değiştirmek ve hedef olarak da kodun okunuşu kolaylaştırmaktır diyebiliriz. Refactoring konusunda sektörde bir çok araç, üçüncü parti uygulamalar satılıyor. Visual Studio içerisinde de C# için hazır bazı ufak tefek Refactoring araçları bulunuyor. Tabi ben bir VB programcısı olarak olayın VB kısmından bahsedeceğim ve sizlere ücretsiz bir Visual Studio eklentisi olan Refactor'u tavsiye edeceğim.

http://msdn2.microsoft.com/en-us/vbasic/bb693327.aspx

Yukarıdaki adresten indirebileceğiniz yazılımın normal sürümü ücretsiz ve hem Visual Studio 2005 hem de 2008 ile uyumlu. Yazılımın daha çok özelliklere sahip bir sürümü de "Refactor Pro" adı altında satılıyor. Biz şimdilik ücretsiz sürümle yetinelim :)

Hemen bir iki örnek ile neler yapabileceğimize bakalım.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim ds As New Data.DataSet

 

        Using cnn As New SqlConnection(ConfigurationManager.ConnectionStrings("CNN").ConnectionString)

            Using cmd As New SqlCommand("SELECT * from TABLO", cnn)

                Dim da As New SqlDataAdapter(cmd)

                da.Fill(ds)

            End Using

        End Using

 

        GridView1.DataSource = ds

        GridView1.DataBind()

    End Sub

Devamı...
Blog Sayaç
Tag Cloud
Visual Basic Refactoring Visual Basic Vb.Net Veritabanı Türleri Sql Diziler Visual Basic Diziler Dizileri Yeniden Boyutlandırma Kod Yazmadan Programlama Dreamweaver PHP İlişkisel Veritabanı Tasarımı Veritabanı Mysql Oracle Mssql Dizi Değişkenlerinde Kullanılan Methodlar SQL (Structured Query Language) Sql dili sql nedir Visual Basic 9.0 (2008) Extension Methods Visual Basic 9 Visual Basic 10 Index (Dizin) Kavramı Primary Key (Birincil Anahtar) Foreign Key (Yabancı Anahtar) Visual Basic de IIF ile Yeni IF arasındaki "I" farkı hakkında IF ve IIF Microsoft Microsoft Silverlight Silverlight Nedir Silverlight 4 Silverlight 3 Internet Explorer 8 Windows IE 8 IE 8 ASP.NET MVC Framework’e Genel Bakış Asp.Net Mvc Asp.Net Mvc Asp.Net 4.0 ClientIDMode HTML ID Framework 4.0 Sql Delete komutu Sql insert komutu sql update komutu sql select komutu Sayfa Genelinde Etkilenmeyen DIV Katmanı Div Css favicon Favicon yapımı Silverlight İle Streaming Servisleri Streaming Silverlight Silverlight Uygulamalarında Performans Silverlight Performans Final haftası gop universitesi kmyo koyulhisar koyulhisar myo ümit polat Vitabanı Yönetim Sistemleri Veritabanı Final Soruları gop gop koyulhisar myo Veritabanı Yönetim Sistemleri Final Sorularının Cevapları şiir hayat hayat felsefesi ölüm internet internet programcılığı php resim yükleme php resim upload blue-ray pioneer blue-ray disk windows 7 windows 7 tanrı modu GodMode Windows 7 GodMode 7 GodMode inegöl karlı hava eskişehir mehmet özdemir daron yöndem internetten para kazanmak cpc ppc adsense adtech adhood Google oop Sınıf e nesne kavramı Class kavramı Object Oriented Programming Overloading Kavramı Visual Basic.Net Silverlight ContextMenü ContextMenü Silverlight Sağ Tuş Desteği Silverlight 4 Commanding Commanding vs 10 Vb 10 Visual Studio 10 ad3m ByGOGO Ümit chosen 90 lı yıllar maç gaziosmanpaşa üniversitesi yazılım kulübü


Blogsa 1.0 ile olusturulmustur.