Degişkenler ve sabitler..

'M.CaN.

Katılımcı Üye
şkenler

Değişkenler geçici bilgi alanlarını ifade etmek için kullanılır. Program çalıştığında adı geçen değişkenin saklandığı bellek alanından değer alınır, işlem yapılır, gerekirse o bellek alanı güncellenir. Değişkenlerin saklandığı bellek alanları dinamik bir şekilde kullanılır. Her programlama dilinde olduğu gibi VB.NET’te de değişkenlerin isimlendirme kuralları vardır. Bunlar;

● Değişken isminin ilk karakteri bir harf olmalıdır.
● Değişken ismi oluşturulurken, diğer karakterler, harf, rakam ya da alt çizgi (-) sembolü olabilir.
● Kullanılan harflerin küçük ya da büyük harf olmasının önemi yoktur.
● Değişken isim uzunlukları 16383 karaktere kadar olabilir.
● Değişken isimleri içinde diğer semboller(+,-,/ ,boşluk vb) bulunmamalıdır.
● .NET’e özgü kelimeler olmamalıdır.

Örnek: Butona tıklandığında textbox’ın içeriğini mesajla kullanıcıya bildiren program.


Kod:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mesaj as string
mesaj = Textbox1.Text
msgbox(mesaj)
End Sub
Yukarıdaki kod satırında tanımlanan str; string türündeki bir değişkendir. Bu örnekte kullanılan Dim deyimi değişkenlere erişim düzeyini belirtmek için kullanılan bir deyimdir.

Örnek: Butona tıklandığında textbox1’in içeriğini, textbox2’nin içeriğine bölen ve sonucu mesajla kullanıcıya bildiren program.


Kod:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sonuc As String
Dim str1, str2 As Integer
str1 = CInt(TextBox1.Text)
str2 = CInt(TextBox2.Text)
sonuc = str1 & "/" & str2 & "=" & (str1 / str2)
MsgBox(sonuc)
End Sub
Yukarıdaki kod satırında; str1, str2 integer ve sonuc string türünde değişkenlerdir. Metin kutularının içeriğini birbirine böler ve sonucu ekrana mesajbox dialog kutusu ile bildirir.

Örnek: Butona tıklandığında, butonun text özelliğini “Programlamaci.com” olarak değiştirilen program.


Kod:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim yazi As String = “Programlamaci.com”
Button1.Text = yazi
End Sub
Yukarıdaki kod satırında; yazi, string türünde bir değişkendir.

Sabitler

Sabitler kod satırındaki değeri değişmeyen program bileşenleridir. Uygulama süresince değiştirilmeyecek olan değer için Const ifadesi kullanılır. Bu ifade ile bir sabit tanımı yapılır.

Const tanımı aşağıdaki şekillerde yapılmaktadır:


Kod:
(Private | Public ) Const sabit adı = sabitin değeri }
Örnek: Butona tıklandığında Form’un text özelliğini www.programlamaci.com olarak değiştirilen program.


Kod:
Public Class Form1
Public Const str As String = "www.programlamaci.com"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Text = str
End Sub
End Class
Yukarıdaki kod satırında, "www.programlamaci.com" string türünde bir sabittir. “Me“ formu temsil etmektedir.

Değişkenlere Değer Atama

Bir değişkene değer atamak için genel olarak aşağıdaki ifade kullanılmaktadır;


Kod:
Değişken_Adı = Değişkene Atanan Değer
Yukarıdaki tanımda yer alan eşittir (=) işareti sadece, sağdaki değerin soldaki değişkene aktarılacağını ifade etmektedir. Örneğin maas isimli bir değişkene 15000 değeri;


Kod:
maas=15000
şeklinde atanır. Ya da integer olarak tanımlanan x,y değişkenleri ile;


Kod:
Dim x,y as integer
x=y+1
şeklinde tanımlama yapmak mümkündür.

Değişkenlerde Tip Dönüşümleri

Uygulama içinde kullanılan değişkenlerin türlerini birbirlerine dönüştürmek için kullanılan yöntemdir. Tip dönüşümü için kullanılan fonksiyonlar şunlardır.

CInt Matematiksel ifadeyi yuvarlatarak tam sayıya dönüştürür
CLng Matematiksel ifadeyi yuvarlatarak uzun tamsayıya dönüştürür.
CSng Matematiksel ifadeyi tek duyarlıklı single tipine dönüştürür.
CDbl Matematiksel ifadeyi çift duyarlıklı double tipe dönüştürür.
CCur Matematiksel ifadeyi parasal currency formata çevirir.
CStr İfadeyi stringe çeviri
CVar İfadeyi varyant variant tipe çevirir.
CBool Matematiksel ifadeyi lojik logic boolean türe çevirir.
CByte Matematiksel ifadeyi Byte’ a çevirir.
CDate Uygun verilen bir ifadeyi tarih Date formatına çevirir.
CChar String ifadenin ilk karakterini, karakter türüne dönüştürür.
CDec Sayısal ifadeyi, decimal türe dönüştürür.
CObj İfadenin değerini object türüne dönüştürür.
CShort Ondalık sayıları yuvarlayarak sayısal bir değeri kısa tamsayıya çevirir.

Örnek: İki adet metin kutusunun içeriğini toplayıp etiket denetiminin text özelliğine aktaran program.


Kod:
label1.text = CInt(TextBox1.Text) + CInt(TextBox2.Text)
Yukarıdaki kod satırında, CInt(); metin kutusunun string türündeki içeriklerini tam sayı türüne dönüştürmüştür.

Örnek: Ondalık (yani decimal) türdeki bir sayısal değeri, tamsayı (integer) türüne dönüştüren program.


Kod:
deger = CInt(sayi)
MsgBox(CStr(deger))
Yukarıdaki kod satırında: 345.425, ondalık türünde bir değişkendir. CInt() fonksiyonu ile ondalık türündeki bu değer, tam sayı türüne dönüştürülmüştür. Programın çıktısı: 345’tir. Çünkü ondalık değeri tam sayıya yuvarlanmıştır. Tanımlanan sayi isimli değeri 345.525 ise, 346 tamsayıyı değerine yuvarlayacaktır.

Değişkenlere Erişim Düzeyi

Visual Basic.NET'te değişken tanımları farklı erişim düzeylerinde ve farklı erişim deyimleri ile yapılmaktadır. Değişken tanımlarının yapıldığı düzeylere göre değişkenlere erişim sağlanmaktadır. Değişken tanımlanırken belirlenen erişim deyimleriyle;
sadece değişkenin tanımlandığı alt programdan,
sadece tanımlandığı formdan,
yada başka bir formdan da erişilebilsin şeklinde erişim sınıflaması yapılabilir.
Visual Basic.NET'te aşağıdaki erişim düzeylerinde değişken tanımları yapılmaktadır.

Sınıf Düzeyi (class level)

Kod:
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load ( ByVal sender as System . Object ,_
ByVal e as System .EvenArgs ) Handles MyBase . Load
Dim OgrenciNo As Integer
Dim AdıSoyadı As String
.........
End Sub
End Class
Kayıt yapısı düzeyi (structure level)

Kod:
Public Structure musteri
Public Adi As String
Public Soyadi As String
Public Tel1 As Integer
Public Tel2 As Integer
Public Fax As Integer
Private Adres As String
.............
End Structure
Form Düzeyi ( Form level )

Kod:
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load ( ByVal sender as System . Object ,_
ByVal e as System .EvenArgs ) Handles MyBase . Load
If x Lıke " * a" Then
MsgBox (" bulundu ")
Else
MsgBox (" bulunmadı ")
End If
End Sub
End Cass
Erişim Deyimleri

Erişim düzeylerinde yapılacak olan değişken tanımlarında farklı erişim deyimleri kullanılmaktadır. Bu deyimler: Private, Public, Frind, Protected olarak adlandırılır. Bu deyimlerden her biri, değişkenlere alt programdan, tanımlandığı formdan ya da form dışından erişilebilirliğini tanımlar.

PRIVATE
Yerel (local) değişken tanımlarında kullanılır. Yerel değişkenler projenin hangi bölümünde tanımlanmış ise sadece orada o sınıf tarafından kullanılır.

Örnek: Private erişim düzeyinde ve decimal türündeki sayi isimli bir değişken tanımlayan program.


Kod:
Public Class Form1
Dim sayi As Decimal = 345
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
sayi = sayi + 0.569
MsgBox(sayi)
End Sub
End Class
Yukarıdaki kod satırında; sayi, private erişim düzeyinde bir değişkendir. Form1 sınıfı içerisinde, alt programlar haricinde herhangi bir yerde tanımlanabilir ve bu sınıf içerisinde herhangi bir yerden bu değişkene erişim sağlanabilir.

PUBLIC
Her düzeyde erişebilecek olan değişkenlerdir. Bu tür tanımlanan değişkenlere herhangi bir kısıtlama olmadan her düzeyden erişebilir. Public olarak tanımlanan değişkenler hem uygulama, hem de diğer erişim düzeylerinde kullanılabilir. Bu değişkene, tanımlandığı uygulamayı kullanan diğer uygulamalar tarafından da erişebilir. Genelde programlarda modül tanımlarken kullanılır. Modüllerde tanımlanan bu public değişkenlere, program içerisindeki her form, her bir formun alt programlarından erişmek mümkündür.
Aşağıda bir modülde str isimli string değişkeni tanımlanmıştır.

Örnek: Public erişim düzeyinde, string türünde, str isimli bir değişken tanımlayan program.

Kod:
Public Str As String
Yukarıdaki kod satırında, uygulamaya modül eklenmiştir (Project -> Add Module). Bu modülde tanımlanan str isimli değişkene, uygulamaya eklenen her formdan erişim sağlanabilir.

FRIEND
Friend deyimi ile tanımlanan değişkenlere, tanımlandıkları sınıf yada modül içindeki her yerden erişebilir. Proje dışından bu tür değişkenlere erişilemez. Bu tür deyimler sınıf, modül ve blok düzeyinden tanımlanır. Tanımlandığı formdaki alt programdan da friend değişkenlere erişim yapılabilir.

Örnek: Formun load alt programında kullanılacak olan OledbConnection (veri tabanı bağlantı) nesnesini friend erişim düzeyi olarak tanımlayan program.


Kod:
Public Class Form1
Friend WithEvents baglanti As New OleDb.OleDbConnection
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
baglanti = New OleDb.OleDbConnection("Provider=Mic...")
End Sub
End Class
Yukarıdaki kod satırında, veri tabanı bağlantısını sağlayacak olan baglanti1 isimli Oledb.OledbConneciton türündeki nesne, friend erişim düzeyinde tanımlanmıştır. Formun bütün alt programlarından bu nesneye erişmek mümkündür.

PROTECTED
Bu tür değişkenler sınıf içinde tanımlanırlar. Protected erişim düzeyi ile tanımlanan değişkenlere, tanımlandıkları sınıf içinden ve uygulamanın kullanıcı tarafından tanımlanmış sınıflarından erişebilir.


Kod:
Public Class Form1
Protected sayi1, sayi2, sonuc As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sayi1 = 12
sayi2 = 21
topla()
End Sub
Private Sub topla()
sonuc = sayi1 + sayi2
MsgBox(sonuc)
End Sub
End Class
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.