Post has attachment

Post has attachment
C# Fonksiyon ve Metot Kullanımı

C# Fonksiyonlar ve Metotlar
Bu makalede C#‘ta fonksiyon ve metotların nasıl hazırlandığı konusunda bilgiler bulunmaktadır.
C# projelerinin temel bileşeni olan formlara her biri değişik bir amaca yönelik kontroller Toolbox’tan seçilip yerleştirilebilinmektedir. Üzerinde çalıştığınız forma bir Button yerleştirip tasarım anında düğmeyi çift tıklarsanız düğme için kod yazılabilinen pencere açılır ve çalışma anında düğme tıklandığı zaman işitilmek üzere bir metot kalıbı hazırlanır. Bu şekilde hazırlanan metot geriye bir değer göndermediği için metot veya fonksiyon adının önüne void deyimi yazıldı.
private void button1_Click(object sender, System.EventArgs e)
C# projeleri dahilinde kullanılan nesnelere uygulanma olasılığı olan olaylar için metot veya fonksiyon kalıpları otomatik olarak hazırlanmaktadır. Hangi olay için metot veya fonksiyon kalıbı hazırlamak istiyorsanız Properties penceresinde söz konusu nesneye ait olayların listelenmesini sağlamalısınız.
Bildiğiniz gibi Properties penceresinde ilgili nesneye ait tanımlı olayların listelenmesini sağlamak için Events düğmesini tıklamak gerekmektedir.Aşağıda verdiğim ekran görüntüsünü aldığım sırada Properties penceresinde ”Button” nesnesine ait olaylar listeleniyordu.
properties
Örneğin çalışma anında formdaki düğmeye tıklandığı zaman yapılması istenen işlemleri yapacak kodlar click yordamına yazılır. Properties penceresinde ”Button1” düğmesine ait olaylar listelenirken KeyPress olayının üzerinde cift tıklama yapılınca aşağıdaki gibi bir yordam veya geriye değer döndürmeyen metot kalıbı hazırlandı.
private void button1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
}
private void button1_Click(object sender, System.EventArgs e)
Form veya diğer nesnelerle ilgili olarak projelere dahil edilen yordamların dışında yapmak istediğiniz işlemler için kendiniz yordam veya fonksiyonlar hazırlayabilirsiniz. C# da Visual Basic ve Delphi, Pascal gibi dillerden farklı olarak procedure veya yordamlar yoktur. Gerçekte yordam ile fonksiyon arasındaki tek fark fonksiyonların geriye değer döndürmeleridir. Buna göre geriye değer döndürmeyen fonksiyonlara yordam denilebilir.
Visual Studio .NET ile geliştirilen uygulamalarda fonksiyonlardan metot diye söz edilmektedir. Aslında direk nesneler üzerinde işlem yapmayan metotları fonksiyon diye adlandırma taraftarıyım. Farkında olmadan bazen metotlardan fonksiyon diye söz ettiğim oluyor. Bu yazımda geriye değer göndermeyen metot ve fonksiyonlardan söz ederken yer yer yordam kavramını kullandım.
Yukarıda verilen metodun başına konulan private deyimi sayesinde bu metoda başka bir sınıftan erişim sağlamak veya kullanmak mümkün olmaz. Daha önce konsol uygulamaları hakkında bilgi verilen bölümden hatırlayacağınız gibi C# uygulamaları sınıflardan meydana gelmektedir. Yeni bir proje hazırlandığında projeye dahil edilen form ile aynı ada sahip bir class veya sınıf hazırlanmaktadır.Bir forma sahip yeni bir proje hazırlandığında Visual Studio .NET tarafından otomatik olarak hazırlanan sınıfı aşağıda görebilirsiniz.
kutuphaneler





C#
Projeye 2. bir form dahil edilmesi halinde 2. bir sınıf hazırlanır. Dolayısıyla önüne private deyimi yazılan yordamı başka sınıflarda kullanmak mümkün değildir. Hazırlayacağınız yordam veya metodu başka sınıflarda kullanmak istiyorsanız yordamın başına private yerine public yazmalısınız.
Hazırlamış olduğunuz fonksiyon geriye bir değer döndürmüyorsa veya başına void deyimi eklenmiş ise bu fonksiyona yordam (procedure) diyebilirsiniz. Şimdi ”Mesaj_yaz” adında geriye değer döndürmeyen basit bir fonksiyon hazırlayacağım. Geriye değer döndürmeyen fonksiyonların başına void deyimi eklenmektedir.
Bu amaçla forma ait kod penceresinde aşağıdaki gibi bir yordam kalıbı hazırladım. Bu yordamın başına erişim belirteci olarak public veya private yazmadığım için yordamın private yani sınıfa özel olduğuna karar verilir.

void Mesaj_yaz()
{
}
Hazırlamak istediğim fonksiyon sayesinde MessageBox sınıfından Show() metodu ile ekrana mesaj vereceğim. Aslında böyle bir işlem için form ve diğer nesnelerle ilgili olarak önceden tanımlı mevcut yordamlardan(olaylar) yararlanılabilir ama burdaki amacım deneysel. Bu nedenle yukarıda verdiğim Mesaj_yaz() yordamına bir satırlık kod ekledim.
static void Main()
{
Application.Run(new Form1());
}
void Mesaj_yaz()
{
MessageBox.Show(”Visual C#”);
}
Hazırladığım bu metot veya fonksiyonun formun üzerinde tıklama yapıldığı zaman işletilmesini istiyorum. Bu nedenle Form_Click() yordamına Mesaj_yaz() fonksiyonunu işletecek bir satırın yazılması gerekir. Bir fonksiyonu işletmek veya çağırmak için fonksiyonun adını yazmak yeterlidir.
void Mesaj_yaz()
{
MessageBox.Show(”Visual C#”);
}
private void Form1_Click(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
Mesaj_yaz();
}
Bu şekilde fonksiyon hazırlanıp çalışma anında formun üzerine tıklama yapılırsa Form_Click() yordamı işletilir. Bu yordamda Mesaj_yaz() fonksiyonunu çağıran bir satır olduğundan Mesaj_yaz() yordamı sayesinde bir diyalog kutusu içinde ekrana mesaj verilir.
Add a comment...

Post has attachment

Post has attachment

Post has attachment

Post has attachment

Post has attachment
C# Değişken Kod Örnekleri

Önceki yazılarımızda C# nedir, C# Değişken Kavramı, Referans – Değer Türleri gibi konuları işlemiştik. Şimdi de değişkenleri kod içerisinde tanımlayıp çeşitli fonksiyonlar ile kullanılışlarını görelim.
private void button1_Click(object sender, EventArgs e)
{
sbyte kucuk_sayi; //sbyte türünden değişken tanımı.
int deger = 24; // int türünden değişken tanımlanması ve değer atanması.
kucuk_sayi= (sbyte) deger; // sbyte türündeki değişkene int tipindeki değeri sbyte türüne dönüştürüp atanması.
this.Text = kucuk_sayi.ToString (); // değişken içerisindeki değerin stringe dönüştürülüp yazdırılması.
}
private void button1_Click(object sender, EventArgs e)
{
long deger; // long türünden değişken tanımlanması.
double sayi = 100.85; // double türünden değişken tanımlanması ve değer atanması.
deger = Convert.ToInt32(sayi); // long türündeki değişkene int tipine dönüştürüp değer atanması.
this.Text = deger.ToString(); // değerin string tipine dönüştürülüp yazdırılması.
}

private void button1_Click(object sender, EventArgs e)
{
float deger; // float türünde değişken tanımlanması.
int ilk_sayi = 20, son_sayi = 6; // int türünde 2 adet değişken tanımlaması ve değer atanması.
deger = ilk_sayi / son_sayi; // float türündeki değişkene int türündeki iki değişkenin bölümünün atanması.
this.Text = deger.ToString(); // sonucun string türüne dönüştürülerek yazdırılması.
}
Not: Burada “deger” float türünde bir değişken olmasına rağmen bölen ve bölünen sayı türleri integer olduğundan sonuç tam sayı çıkacaktır. Sonuç : 3
Sonucun ondalıklı sayı çıkması için bölen ya da bölünen sayılardan en az birinin de float türünde olması gerekir:
private void button1_Click(object sender, EventArgs e)
{
float deger, son_sayi = 6; // float türünde 2 adet değişken tanımlanması.
int ilk_sayi = 20; // int türünde değişken tanımlanması ve değer atanması.
deger =ilk_sayi / son_sayi; // float türündeki değişkene int ve float türündeki iki sayının bölümünün atanması.
this.Text = deger.ToString(); // Sonucun stringe dönüştürülüp yazdırılması.
}
Sonuç : 3.33333
private void button1_Click(object sender, EventArgs e)
{
string metin; // String türünde değişken tanımlanması.
metin = textBox1.Text; // textboxa girilecek string değerinin metin değişkenine atanması.
MessageBox.Show(”Girilen değer: ” + metin); // MessageBox ile girilen değerin gösterilmesi.
}
Char karaktersel işlemlerde kullanılan bir türdür. String veri türünden farklıdır. Tek karakter ataması yapılabilir ve atanan karakter ‘(Tek tırnak)’ içerisinde yazılmalıdır. Örneği inceleyelim:
private void button1_Click(object sender, EventArgs e)
{
char karakter; // char türünde değişken tanımlanması.
karakter = ”a”; // değişkene karakter atanması (yanlış kullanım)
textBox1.Text = karakter; // textboxa girilen karakterin atanması.
Yukarıdaki örnek karakter değişkenine atanan a harfinin ” ” içerisinde yazılmasından dolayı hata verecektir. Doğrusu ‘ ‘ olmalıdır.
private void button1_Click(object sender, EventArgs e)
char karakter; // char türünde değişken tanımlanması.
karakter= ‘a’; // değişkene karakter atanması.
textBox1.Text = karakter.ToString(); // char türündeki değişkeni stringe dönüştürerek textboxa atanması.
}
Char olarak tanımlanan bir değişkene string türündeki bir değişkenin değerini atamak istendiğimizde atama yaparken indis numarası belirtilmelidir.
private void button1_Click(object sender, EventArgs e)
{
char karakter; // char türünde değişken tanımlanması.
string metin = ”a”; // string türünden değişken tanımlanıp değer atanması.
karakter = metin [0]; // char türündeki değişkene string türündeki metinin ilk karakterinin atanması.
textBox1.Text = karakter.ToString(); // textboxun değerine karakter değişkeninin değeri stringe dönüştürülerek atanması.
}
Sonuç : a
String bir karakter dizisini tutar. Char ise tek bir karakteri. bu sebeple indis numarası kullanılır. indis numarası 0(sıfır)’dan başlar. Örneğin ‘istanbul’ kelimesinin ilk karakteri yani 0.indexi ‘i’ harfidir. ikinci harfi yani 1.indexi ise ‘s’ harfidir.
bunu kod üzerinden açıklayacak olursak;
private void button1_Click(object sender, EventArgs e)
{
char karakter; // char türünde değişken tanımlanması.
string metin = ”istanbul”; //string türünde değişken tanımlanıp değer atanması.
karakter = metin [1]; // char türündeki değişkene metin değişkenindeki stringin 2. karakterinin atanması.
textBox1.Text = karakter.ToString(); // textboxa char türündeki değişkenin stringe dönüştürülüp atanması.
}
Sonuç : s
Add a comment...

Post has attachment

Post has attachment
Değişkenlerin Faaliyet Alanları (Scope)

C# dilinde programın genel akışı açılan ve kapanan parantezler içerisinde yazılır. Bu açılan ve kapanan parantezler arasındaki bölgeye ”Blok” denir. Tanımlanan bir değişkene, ancak tanımlandığı blok içerisinde ulaşılabilir. Örneğin aşağıdaki kısa örnekte tanımlanan her iki ”a” değişkeni birbirinden bağımsızdır ve bellekte ayrı bölgelerde saklanırlar.
Public class deneme
{
public static void main()
{
{//Birinci Blok
int a = 20;
}
{//İkinci Blok
int a = 20;
}
}
}
}
Yukarıdaki örnekte birinci ve ikinci blokta tanımlanan ”a” isimli değişkenler Main bloğu içinde geçersizdir. Birinci a değişkeninin faaliyet alanı 1.Blok, ikinci a değişkenin faaliyet alanı ise 2.Bloktur. Bu durumda Main() bloğunda Console.WriteLine(a); gibi bir ifade hatalıdır, çünkü Main bloğu içinde tanımlanan bir a değişkeni yoktur. Unutmamalıyız ki daha sonra ki makalelerde detaylı olarak göreceğimiz for ve diğer döngüler de birer blok olduğu için bu bloklarda tanımlanan değişkenler döngü bloğunun dışında geçersiz olacaktır.
C# CTS (COMMON TYPE SYSTEM) TİPLERİ
Csharp-veri-tipleri
.NET bir yazılım geliştirme platformudur. Aslında bütün veri tipleri CTS dediğimiz bir sistem ile tanınırlar. Yani C# dilinde ki veri türleri aslında CTS’deki veri türleri için birer arayüz gibidirler. CTS sayesinde .NET platformu için geliştirilen bütün diller aynı veri tiplerini kullanırlar, tek değişen veri türleri tanımlama yöntemi ve syntax’ıdır. Bu yüzden bizim C# dili ile tanımlayacağımız her veri tipinin CTS’de bir karşılığı mevcuttur.
C# dilinde tanımladığımız bütün basit veri tipleri aslında CTS’de bulunan bir yapı nesnesidir. C# dilindeki önceden tanımlanmış temel veri tipleri on beş tanedir. Bunlardan on üçü değer tipi ikisi de referans tipidir.
Değişkenler bellekte bulunan verilerdir. Bir değişkeni kullandığımız zaman o değişkenin bellekte bulunduğu yerdeki bilgiyi kullanırız. Değer tipleri veriyi direk olarak bellek bölgesinden alırken referans tipleri başka bir nesneye referans gösterirler. Yani referans tipleri içinde veri değil adres bilgisi tutarlar. Veri tipleri stack dediğimiz bellek bölgesinde tutulurlar, referans tipleri içinde ise heap bellek bölgesinde saklanırlar. Int, double, float gibi veri tipleri değer tiplerine örnek gösterilebilir. Herhangi bir sınıf türü ise referans tipine örnek gösterilebilir. Değer tipleri birbirine eşitlenirken değişkenin barındırdığı değer bir diğer değişkene kopyalanır. Böylece iki farklı bağımsız değişken oluşur. Referans tipleri ise eşitleme sırasında değişkenlerin taşıdıkları veri değil heap bölgesinde işaret ettikleri adres kopyalanır. Böylece eğer iki referans değişkenini birbirine eşitledi isek ve daha sonra bunlardan birinde bulunan veriyi değiştirdi ise otomatik olarak diğer referans değişkeninin değeri de değişir. Çünkü adreste bulunan veri değişince bu adresi işaret eden iki değişkende yeni veri bilgisine ulaşır.
Add a comment...

C# Değişken Kavramı

Değişkenler bir programlama dilinde temel verileri saklamak ve bu verileri sonradan kullanmak için kullanılan bellek bölgeleridir. C# dilinde genel olarak bir değişken tanımlaması aşağıdaki gibi olmaktadır.

Veritipi Veriadı;

Örneğin C# dilinde işaretsiz ve 32 bitlik veriyi temsil eden ”a” isimli bir değişken aşağıdaki gibi tanımlanır.

int a ;

Fakat yukarıdaki tanımlamada bir sorun var. ”a” adlı değişkende herhangi bir değer tutulmamaktadır. Bu yüzden C# derleyicisi şimdilik ”a” değişkenini kullanmamıza müsade etmez. Çünkü ”a” da neyin olduğu henüz belli değildir. Bu yüzden değişkenlere = (eşittir) operatörüyle ilk değerler atarız. Bir değişkene bir değer atamak için 2 farklı yöntem kullanılır. Aşağıda bu 2 yönteme ait örnek bulunmaktadır.


int a = 10; //Değişken tanımlanırken bellekteki değer 10 olarak düzenleniyor.
//—————–
int b;
b = 10; /*Değişken tanımlandıktan sonra değişkene değer atanıyor.
İşlevsel olarak bu iki kullanım arasında bir fark yoktur.*/
//——————-
int c = 10, d;
b = 10; /*Eğer bir satırda birden fazla değişken tanımlaması yapmak istiyorsak bu yapıyı kullanırız.
Bu durumda c ve d int türünden değişkenlerdir denir.*/

C# Değişken Tanımlama Kuralları

Programların geliştirilmesi aşamasında aynı amaçlı olarak farklı değerlerin tanımlanması gerekecektir. Bu değerleri kullanabilmek için değişkenlerden faydalanmak gerekecektir.

-Büyük/küçük harf duyarlılığı
-Değişkenler rakamla başlamaz.
-Değişkenlerde özel karakterler kullanılmaz. Örneğin int de&ger; burada & simgesi değişken tanımlamada kullanılmamalıdır.
-Birden fazla kelimeden oluşan değişken isimlerinde kelimeler arasına _ (alt çizgi) karakteri konulmalıdır.
-Kelimeler arasında boşluk olamaz.
-C# dilinin kullandığı komutlar değişken ismi olarak kullanılamaz. Örneğin int this; int while; v.s
-Son olarak değişken isimlerinde Türkçe karakterler kullanılabilir.

http://www.senagul.net/2016/11/06/csharp-degisken-kavrami/
Add a comment...
Wait while more posts are being loaded