8 Ağustos 2008 Cuma

ByVal ve ByRef İncelemesi

ByVal; Parametreye, değişkenin değeri geçer.
ByRef;Parametreye, değişkenin adresi (referansı) geçer.

Fonksiyon ve yordamlara parametre verilirken varsayılan olarak, değişkenlerin değerleri verilir.

Parametreler için erişim nitelikleri;
-params(Değer): Değer erişiminde orijinal verinin bir kopyası metoda aktarılır. Metot bu kopyayı kullanır orijinal değeri değiştirmez.
-referans : Referans , orijinal değişkene erişimi olan bir değişkendir. Referansı değiştirdiğimizde orijinal değişkenin değerini de değiştirmiş oluruz. Veri tipinin referansa göre geçirilmesi için “ref” anahtar kelimesi eklenir. “Ref” anahtarının kullanımını aşağıdaki örnekte görebilirsiniz.

Örnek; “Windows Forms Application” projesi açıyoruz, form üzerine bir buton yerleştiriyoruz.

Kodumuz aşağıdaki şekilde olursa mesaj kutusunda sadece “UZMANI.COM” yazısı görülür.

public void Ekle( string Kelime, string eklenecek )
{
Kelime = Kelime.Insert( 0, eklenecek );
}

private void button1_Click(object sender, EventArgs e)
{
string mesaj = "UZMANI.COM";
Ekle ( mesaj,"ERP");
MessageBox.Show(mesaj);

}

Kodumuza ref anahtar kelimelerini eklediğimizde mesaj kutusunda “ERPUZMANI.COM” yazısını görebileceğiz.
public void Ekle( ref string Kelime, string eklenecek )
{
Kelime = Kelime.Insert( 0, eklenecek );
}

private void button1_Click(object sender, EventArgs e)
{
string mesaj = "UZMANI.COM";
Ekle (ref mesaj,"ERP");
MessageBox.Show(mesaj);

}

4 Ağustos 2008 Pazartesi

c # dilinde Kronometre uygulaması


Form Tasarımı:
1- Başla,Dur, Temizle olmak üzere 3 buton yerleştiriyoruz.
2- Combobox; 1,1000,2000,3000,4000 hız seçeneklerini oluşturacağız. "1" seçtiğimizde sanise, "1000" seçtiğimizde saniye çalışacak.
3- listbox; başlangıç ve bitiş sürelerini yazdırmak için kullanacağız.
4- textbox; süre girişi için oluşturuyoruz.
5- label; KalanSure değerini kullancıya göstermek için.
6- Timer; Toolbox içinden "components" başlığı altında bulabilirsiniz.

code başlangıç


namespace temmuz_tekrar
{
public partial class Kronometre : Form
{
public Kronometre()
{
InitializeComponent();
}
//Değişkenimizi atıyoruz.

public int KalanSure;

//Başla Butonun işlemleri

private void button1_Click(object sender, EventArgs e)
{
// hatadan dolayı program kilitlenmesini önlemek için "try" kullanıyoruz.

try
{
//Süre yeri boş bırakılmasın.

if (textBox1.Text == "")
{
MessageBox.Show("süreyi girin");

}
//hız seçilmesi gerekmektedir.

else if (comboBox1.SelectedItem == null)
{
MessageBox.Show("Hız seçin");
}
//Değer girişinde eksiklik yoksa işlem başlar.

else
{
// Başlangıç zamanı "KalanSure" değişkenine atanır.
KalanSure = System.Convert.ToInt32(textBox1.Text);

// Kalan süre kullanıcıya gösterilir.
label4.Text = System.Convert.ToString(KalanSure);

// ListBox kontrolüne kayıt girilir.
listBox1.Items.Add("Kronometre balaşladı: " + DateTime.Now.ToString());

// ComboBox kontrolünden seçilen değer,
// Timer kontrolünün çalışma hızını belirler.
tmrKronometre.Interval = System.Convert.ToInt32(comboBox1.Text);
// Timer kontrolünü çalıştırır.
tmrKronometre.Start();
}
}
//Herhangi bir hata oluşursa veya
//"textBox"a rakam harici bir şey yazılırsa aşağıdaki hatayı verecektir.

catch (Exception)
{
MessageBox.Show("Lütfen sayı girin");
}
}
//Dur butonun işlemleri
private void button2_Click(object sender, EventArgs e)
{
// Timer kontrolünü durdurur.

tmrKronometre.Stop();

// ListBox kontrolüne kayıt girilir.

listBox1.Items.Add("Kronometre durduruldu: " + DateTime.Now.ToString());
}

private void tmrKronometre_Tick(object sender,EventArgs e)
{
// Her saniye geçtiğinde sure değeri 1 azalacaktır.
KalanSure = KalanSure - 1;

// KalanSure değeri kullancıya gösterilir
label4.Text = System.Convert.ToString(KalanSure);

// KalanSure değeri sıfıra ulaşmışsa kronometre durdurulur.

if (KalanSure == 0)
{
tmrKronometre.Stop();
listBox1.Items.Add("Süre Doldu: " + DateTime.Now.ToString());
MessageBox.Show("Süre doldu");
}
}
//Temizle butonunun işlemleri

private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
textBox1.Clear();
comboBox1.Text = "Hızı Seçin";
label4.Text = "0";
}

}
}
code bitiş


Not: yazilimhocasi.com da da benim tarafımdan yayınlanmıştır.

1 Ağustos 2008 Cuma

c # (sharp) if- else karar yapıları

if anahtar kelimesi iki değeri karşılaştırmak için kullanılır.
if karar yapısı, bir koşul sağlandığı zaman yapılacak işlemleri kapsar. Kontrol edilecek koşul ifadesinin sonucu true değerini alırsa, küme parantezleri arasındaki kodlar çalıştırılır.

if(Koşul)
{
}

else ifadesi, if ifadesindeki koşul yanlış olduğunda çalıştırılacak kodlar yazabilmemizi sağlar.
else
{
}

Örnek: Yazılı ve Sözlü notunu kullanıcıdan aldıktan sonra, geçme notunu hesaplayan ve notun 70 'ten büyük olması durumunda ekrana “Başarılı” mesajını çıkartan, küçük olması durumunda da “Kaldınız çok çalışın” mesajını çıkartan algoritma.

{ double gecmeNotu;
short yaziliNotu = short.Parse(textBox1.Text);
short sozluNotu = short.Parse(textBox2.Text);
gecmeNotu = yaziliNotu * 0.6 + sozluNotu * 0.4;
if(gecmeNotu > 70)
{
MessageBox.Show("Başarılı...");
}
else
{
MessageBox.Show("Kaldınız çok çalışın...");
}
}