Programlarimiz içerisinde siklikla kullandigimiz prosedür, fonksiyon yada degiskenleri bir çati altinda toplayarak projelerimiz içerisinde tekrar tekrar yazmaya gerek kalmadan kullanmak amaci ile bu tip tanimlamalari Class yapilari içerisinde tanimlayabiliriz.Class yapilari, derlemeden tanimladigi projeler içerisinde kullanabilecegimiz gibi derleyip dll dosyasi haline getirerek baska projeler içerisine referans olarak ekleyipde kullanmamiz mümkün.Class yapilari nesne yönelimli yazilim dillerinin kalbini olusturmakla beraber, yazilimcilar için degisik avantajlari vardir.
1. Yazilan bir class ayni program içerisinde veya baska programlarda birçok kez kullanilabilir.
2. Yazilim ve test süreclerini kisaltir.
3. Kod organizasyonunu saglayip hatalarin bulunmasini kolaylastirir.
4. Kod üzerindeki yapilacak olan degisikliklerin kolaylasmasini saglar.
Örnek bir uygulama göstercek olursak Class icerisinde bir fonksiyon tanimlayarak veritabanina kayit islemi gerçeklestirebiliriz...
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.OleDb
Public
Class veribaglanti ' Class dosyamiz
Public Function baglan() As OleDbConnection
Dim yol As String = System.Web.HttpContext.Current.Server.MapPath("App_Data/vt1.mdb") ' Veritabani yolumuzu belirtiyoruz...
Dim baglanti As New OleDbConnection("Provider=Microsoft.jet.OleDb.4.0; Data Source=" + yol) ' Connection Nesnesi tanimliyoruz ve kullanilacak provider ve veritabani yolunu belirliyoruz...
Return baglanti ' Baglanti nesnemizi gönderiyoruz...
End Function
Public Function verikayit(Sqlcumle As String, cmdType As CommandType, OldbType1 As OleDbType, OldbType2 As OleDbType, deger1 As String, deger2 As Integer) As Integer ' Fonkisyonumuzu ve degerlerimizi tanimliyoruz...
Dim baglanti As OleDbConnection = Me.baglan() ' Yukaridaki baglan fonksiyonumuzu dahil ediyoruz...
Dim sorgu As New OleDbCommand(Sqlcumle, baglanti) ' OledbCommand nesnemizi tanimlayip sql cümle sorgusu için stringimizi ve baglantimizi dahil ediyoruz...
sorgu.Parameters.Add("?", OldbType1, 35).Value = deger1 ' Parametre ve degerlerimizi ekliyoruz...
sorgu.Parameters.Add("?", OldbType2, 30).Value = deger2 ' Parametre ve degerlerimizi ekliyoruz...
sorgu.Connection = baglanti
'Command nesnesini Connection nesnesiyle iliskilendiriyorz...
Dim sonuc As Integer = 0
Try ' Hiç bir sikinti olmadan islemimiz çalismis ise Try araligi çalisacak
baglanti.Open()
sonuc = sorgu.ExecuteNonQuery()
Catch ex As OleDbException ' Eger problem varsa Catch bölümü çalisacak...
Throw New Exception(ex.Message) ' Hata mesajini ekrana yazdiracak...
End Try
sorgu.Dispose()
baglanti.Close()
baglanti.Dispose()
Return (sonuc) ' Geriye sonuç degiskenini döndürecek...
End Function
End Class
Classimiza fonsksiyonumuzu tanimladiktan sonra .aspx sayfamizda kullanmamiz için sayfamiza tanimladigimiz classimizi dahil edip gerekli islemleri yaptirabiliriz...
Dim class1 As New veribaglanti
Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
'Public Function verikayit(Sqlcumle As String, OldbType1 As OleDbType, OldbType2 As OleDbType, deger1 As String, deger2 As Integer) As Integer Fonksiyonu
class1.verikayit("insert into Tbl_Kullanici (kullanici,sifre) values (?,?)", CommandType.Text, OleDbType.Char, OleDbType.Integer, TextBox1.Text, TextBox2.Text)
Label5.Text = "Kayit islemi basari ile tamamlandi..."
TextBox1.Text = ""
TextBox2.Text = ""
End Sub
PROPERTY KULLANIMI
Hazirlagimiz siniflar içerisinde property (özellik) kullanarak siniflar içerisinde deger gönderip, degerleri okuyabiliriz.Set ve Get olmak üzere iki tür property vardir.
Set ile deger aliriz, Get ile deger göndeririz...
Örnek bir uygulama ile gösterecek olursak;
islem adinda Class(Sinifimiz) :
Imports Microsoft.VisualBasic
Public Class islem
Private kare As Integer
Dim sonuc As Integer
Public Property karesi() As Integer
Get
sonuc = kare * kare
Return sonuc
End Get
Set(ByVal value As Integer)
kare = value
End Set
End Property
End Class
.aspx sayfamizdan degerlerimizi aliyoruz...
Imports System
Imports System.Data
Imports System.Data.OleDb
Partial Class _Default
Inherits System.Web.UI.Page
Dim nesne As New islem
Protected Sub kare_Click(sender As Object, e As System.EventArgs) Handles kare.Click
nesne.karesi = Val(TextBox1.Text) ' Degerimizi Textboxtdan alip Set kismina gönderiyoruz...
Label2.Text = nesne.karesi ' karesi Propertisinin sonucunu labelimizi yazidiriyoruz...
End Sub
Ilk basta butonumuza tikladigimizda en üsteki kod bulogu çalistirilacaktir.Nesne isminde class1 adinda obje tanimlanacak,daha sonra bir alttaki kod buluguna gececektir... Bir altta ise nesne objesinin karesi propertisine Textboxtan girdigimiz degeri yollayacak.TextBoxa 5 degerini yazdigimizi varsayalim, bu 5 degerini nesne objesinin karesi propertisine gönderiyor, sekilde gördügünüz gibi.Yanliz karesi propertsinin set kismina bu degeri gönderiyor.Set ile deger aldigimiz için,bu deger buraya value degiskeni adi altinda geliyor,kare degiskenine biz bu degeri atiyoruz...
daha sonra ise value ile 5 deger geldi,kare degiskenine atadi,kare degiskenide 5 degerini aldi.Daha sonra ise program End Set;i görüdügü için geldigi yere tekrar geri gitti.Bir sonraki adimda ise bir alttaki satira gidiyor Sonuc.Text = nesne.karesi satirina iniyor.
bu satira indiginde ise sonuc.texboxina nesne objesinin karesi propertisinden bir deger alip oraya yazdirmak isteyecek.Yanii bu propertinin sonuçunda ürettigi degeri almak istiyecek. Bu degeri almak için ise bu sefer get bloguna gidecek ordaki satiri çalistiracak.Burda sonuc degiskeni tanimladik ve sonuc degiskenine kare degiskenindeki degeri kendisi ile çarparak degeri sonuc degiskenine atadi.
Return komutu ile sonuc degiskenindeki degeri gönderdi.Geldigimiz yere gönderdi ve sonuc.Textboxina 5 * 5 = 25 olan degeri yazdirdi... Class içerisinde Property objesi kullanrak islemimizi gerçeklestirmis olduk.
Toplama islemi yapacak olursak : Class dosyamiz
Imports Microsoft.VisualBasic
Public Class islem
Private t1 As Double = 0
Private t2 As Double = 0
Public Property toplama1() As Double
Get
Return t1
End Get
Set(value As Double)
t1 = value
End Set
End Property
Public Property toplama2() As Double
Get
Return t2
End Get
Set(value As Double)
t2 = value
End Set
End Property
Public Function toplabakem() As Double
Return toplama1 + toplama2
End Function
End Class
.aspx sayfamiz
Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
Dim nesne As New islem
nesne.toplama1 = Convert.ToDouble(TextBox1.Text)
nesne.toplama2 = Convert.ToDouble(TextBox2.Text)
Label2.Text = nesne.toplabakem().ToString()
Button1.BackColor = Drawing.Color.Red
End Sub
Örnek çalismayi buradan indirebilirsiniz...