C# PROGRAMLAMA DİLİ DERSLERİ – 2
C#’t a karakterler nedir ? Sayı tipleri nedir ? Aritmetik operatörler , mantıksal operatörler nedir ? C# dilinde sınıflar nedir ? Bu ve benzeri sorulara cevap aradığımız bu yazı dizisinde C# Programlama Dili Dersleri’ne ve C#’a dair ilgili incelemelerimize devam ediyoruz.
C# PROGRAMLAMA DİLİ
C#’ta dokuz adet tamsayı tipi tanımlıdır (byte , sbyte , short , ushort ,int , uint , long , ulong)
İşaretli ve işaretsiz tamsayılar arasındaki fark ise , tamsayının üst bitinin (high order) yorumlanma durumlarına bağlıdır.İşaret bayrağı işaretli tamsayıda C# tarafından üst bite göre kod oluşturularak belirtilir.
Eğer işaret bayrağı 0 ise sayı pozitiftir , 1 ise sayı negatiftir.
C#’ta sinüs , kosinüs ve tanjantı hesaplamak adına Math.Sin() , Math.Cos () ve Math.Tan () kullanılmaktadır.Math.Sqrt () gibi trigonometrik metotlar double argüman ile çağrılıp double bir sonuç döndürürler.
Decimal Tipi :
Decimal tipi 1E-28 ile 7.9E+28 arasındaki değerleri simgelemek adına kullanılır.Decimal ondalık sayılara uygulandığında yuvarlama hatalarını ortadan kaldırır.
Bu tipi özellikle bellek gerektiren hesaplamalarda kullanmalısınız.
Karakterler :
C#’ta Unicode adı verilen 16 bitlik bir karakter tipi kullanılır.Standart 8 bit ASCII karakter seti , Unicode’un bir alt kümesidir ve 0’dan 127’ye kadar uzanır.
Bool Tipi :
Bool tipi ‘’ya doğru ya yanlış’’ True/False mantığında çalışır.1 true’ya dönüşmez , 0’da false’a .
Bazı Çıktı Seçenekleri :
WriteLine()’ı kullanıyorduk , bunu not edelim hemen.Ek olarak Formatted I/O (biçimlendirilmiş I/O) çıktı seçenekleride kullanılmaktadır.
Örnek olarak program çıktınız , 10/3 = 3.33333333 şeklinde olsun.Bu kadar çok ondalık basamak göstermek amaçlarınız için uygun olmayabilmektedir.O zaman ikinci bir WriteLine() stili öğrenelim .
WriteLine(“biçimlendirme karakter katarıi” , arg0 , arg1 , … , argN);
Burada ‘+’ işareti ile değilde , virgül ile ayrılır.
Burada baskı karakterleri ve biçimlendirme belirleyicileri olmak üzere iki öğe içerir.Ve biçimlendirme belirleyicileri şu şekilde bir görünüme sahiptir.
{argno , genişlik : fmt}
Argno ; gösterilecek argüman sayısını (0’dan başlayarak) belirtir.Minimum genişliği genişlik ile ; biçim ise fmt ile belirtilir.
Yani bir biçimlendirme belirleyicisine rastladığında programda , argno’ya karşılık gelen argüman argno’nun yerine yerleştirilir.Genişlik ve fmt ise isteğe bağlı olarak kullanılır.
Örnek olarak ;
Console.WriteLine (“Şubat {0} yada {1} gündür ” 28 , 30);
Şubat 28 ya da 30 gündür çıktısını alırız buradan.
{0,10} şeklinde bir ifade koysaydık şubattan sonra 10 adet boşluk bırakarak 28’i yazacaktı.
Biçimlendirme de en çok kullanılan veri tipleri kayan noktalı ve ondalık değerlerdir.Bunun için WriteLine() ‘#’ konsolu kullanılır.
Örnek : {0:#.##} şeklinde kullanılabilir.
Mesela ; ConsoleWriteLine(“{0:###,###.###}” , 123456.12);
Çıktısı ise ; 123,456.12 çıktısını verecektir.
Literaller :
İnsanların okuyabileceği biçimde temsil edilen sabit değerlere karşılık gelir.Mesela ; 50 sayısı bir literaldir.Aynı şekilde literaller sabitler(constant) şeklinde de ifade edilirler.
Herhangi bir değer tipinde literal olabilir.Bu literallerin gösteriliş şekli ise literalin tipine bağlıdır.
Literaller int , uint , long ya da ulong tipinde olabilirler.Yada kayan noktalı literaller ‘double’ tipindedir.
C#’ta bir literal tipi belirtmek istiyorsanız ;
12 int tipindedir.L ekleyerek 12L’yi long tipinde gösterebilirsiniz.İşaretsiz bir tamsayı belirtmek adına u ve ya U ekleyebiliriz.Bir float’ı belirtmek adına u1 ve ya UL kullanabiliriz.
Onaltılık Literaller ; Hexadecimal olarak duyuyor ya da duyacak olduğunuz tiptir.0-9 arası rakamlarla , ardından A’dan F’e kadar harfler kullanılarak simgelenir.
Örnek olarak : 0xFF (ondalık taban karşılığı 255’tir.)
Karakter Kaçış Sekansları ; Tek tırnak ve çift tırnakların C#’ta özel anlamları da olduğu için problemler meydana gelebilir.Bu sebeple de birkaç kaçış sekansı kullanılmaktadır.
\a -> uyarı(zil) anlamındadır.
\b-> backspace(geri al) anlamındadır.
\f-> form feed (form besleme) anlamındadır
\n-> newline(yeni satır) anlamındadır.
\r-> carriage return (paragraf sonu) anlamındadır.
\t->yatay sekme anlamındadır.
\v-> düşey sekme anlamındadır.
\0-> Null anlamındadır.
\’->Tek tırnak anlamındadır.
\”->Çift tırnak anlamındadır.
\\-> Ters bölü anlamındadır.
Karakter Katarı Literalleri :
Karakter katarı literali -> çift tırnak arasına alınan bir karakter kümesidir.
“bu bir deneme yazısıdır.”
Değişkenler ;
‘ Tip değişken-ismi ‘ şeklinde ifade edilirler.
Tip; değişken veri tipini , değişken-ismi de o değişkene verilen isimdir.
C#’ta tüm değişkenler kullanılmadan önce deklare edilmelidir.
Bir değişkene ilk değeri atayalım beraber ;
İnt count = 10 ;
Char ch = ‘C’;
Float f = 1.5F gibi.
Bu dilde değişkenlerin tümü Main() metodunun başında tanımlanmaktaydı ancak C# bir yerel değişkenin blok içerisinde deklare edilmesine imkan tanımaktadır.
En önemli kapsamlar ise ; bir sınıf ve bir metot tarafından tanımlananlardır.
Tip Dönüşüm ve Atamaları :
Bir integer değeri float değere atamak istediğimizi varsayalım ;
İnt i ;
Float f ;
İ = 10 ;
F = i ;
İnteger’ı float’a atıyoruz.(basit bir örnek)
Otomatik Dönüşüm ;
Bir tipteki verinin diğer bir tipteki değişkene atanmasının otomatik olarak dönüşmesi durumunu sağlayan koşullar;
- Her iki tip uyumlu olmalı
- Hedef tip , kaynak tipten daha büyük olmalıdır
Her iki koşul da sağlanırsa , genişletici dönüşüm (widening conversion) söz konusu olacaktır.
Operatörler :
Toplama (+) , Çıkarma (-) , Çarpma (*) , Bölme (/) , Artırma (++), Eksiltme (–)
Eğer artırma/azaltma operandları ifadenin önünde kullanılırlarsa (–x / ++x) gibi , C# geri kalan kısımda operandın değerini hesap etmeden önce işlemi gerçekleştirir.
Örnek :
X = 10 ve y = ++x -> y = 11 değerini hemen alacaktır.
X = 10 ve y = x++ -> y =10 değerini ilk başta alacaktır.
Mantıksal Operatörler :
Eşittir (==) , Eşit değildir (!=) , Büyüktür (>) , Küçüktür (<) , Büyüktür veya eşittir (>=) , Küçüktür veya eşittir (<=)
Ve (&) , Veya (|) , XOR özel veya(^) , Kısa devre veya (||) , Kısa devre ve (&&) , Değil (!)
Kısa Devre Mantıksal Operatörler ;
Bu operatörler VE (&&) ve VEYA (||) operatörleridir.
Atama Operatörü ;
Atama operatörü (=)’dir.
Değişken = deyim ;
Bileşik Atamalar ;
X = x+ 10 ‘u -> x +=10; şeklinde
X = x-50’yi -> x -=50; şeklinde yazabiliriz.
değişken op = deyim ; genel gösterimidir.
Aritmetik ve Mantıksal Atama Operatörleri ;
+= , -= , *= , /= , %= , &= , |= , ^=
Bit Tabanlı Operatörler ;
Yalnızca tamsayılar için geçerlidir.Bool , float , double üzerinde kullanılamazlar.
Bu operatörlere bit tabanlı adı verilmektedir çünkü bir tamsayı değeri oluşturan bitlerin test edilmesi , ayarlanması ve kaydırılması işlemlerinde kullanılır.
Bit Tabanlı VE (&) , Bit tabanlı VEYA (|) , Bit tabanlı XOR(^) , Sağa kaydırma (>>) , Sola kaydırma (<<)
? Operatörü ;
Genel olarak belirli olan if-then-else ifadelerinin yerine kullanılır.? Operatörüne üçlü (ternary) operatör denilir.Nedeni ise üç adet operand gerektirmesidir.
Kullanım Formu : Deyim1 ? Deyim2 : Deyim3;
Bu ifade de deyim1 bool deyimdir ve deyim2 ile deyim3 birer deyimdir.Deyim2 ve deyim3’ün tipleri aynı olmalıdır.
Eğer deyim1’in değeri doğru ise deyim2 hesaplanır .Yalnışsa deyim3 hesaplanır.
Program Kontrol İfadeleri :
1 ) İf (koşul) ifade ;
else ifade;
2) if (koşul) ifade ;
else if (koşul) ifade ;
else if (koşul) ifade ;
else ifade ;
3)switch (deyim) {
case sabit1 : ifade break ;
case sabit2 : ifade break ;
……
Default : ifade break ; }
Not : Default ifadesi isteğe bağlıdır.Case ilişkili ifadelerin bir sonraki case içerisinde devam etmesi hatalıdır ve buna bir sonraki seçeneğe kaymama (no-fall-through) kuralı denir.
4) for (başlangıç ; koşul ; iterasyon) ifade ;
Not : iterasyon döngünün her tekrarlanışında döngü kontrol değişkeninin ne ölçüde değiştirileceğini tanımlar.
5) while (koşul) ifade ;
6)do { ifadeler ; 0 } while (koşul) ;
7)continue ifadesi ile , döngüyü bir sonraki tekrarını gerçekleştirmeye zorlayarak , arada yer alan kodun dikkate alınmamasını sağlayabiliriz.
Sınıf – Nesne – Metotlar :
Sınıflar , C#’ın özüdür.Tüm C# faaliyetleri bir sınıf içerisinde meydana gelmektedir.Sınıf bir nesnenin şeklini tanımlayan bir şablondur.
Nesne tanımlanması için sınıf spesifikasyonu kullanılır.
Sınıf ‘class’ anahtar kelimesi kullanılarak oluşturulur.
Örnek ;
Class sınıfismi {
Erişim tip değişkeni1;
Erişim tip değişkeni2;
Erişim tip değişkenin ;
Erişim dönüş-tipi metot1 (parametreler) { metod gövdesi }
…..
}
Burada erişim ilgili üyeye ne şekilde erişileceğini belirten bir erişim belirleyicisidir.Örnek olarak ; Public vb.
Bina adında bir sınıf oluşturalım ;
class bina {
public int katlar ;
public int odalar ;
}
Kullanım : erişim tip değişken-ismi ;
Bir bina nesnesi oluşturmak için ;
Building house = new Building (); Building tipinde bir nesne oluşturur.Ve fiziksel gerçeklik kazandırır.
Nokta (.) operatörü bir nesnenin ismini bir üyenin ismi ile bağlar.
Örnek : nesne.üye
Örnek = house.floors = 2;
C# PROGRAMLAMA DİLİ DERSLERİ 2 SONUÇ :
Bugünki yazımızda C# Programlama Dili Dersleri 2 adlı yazımızı sizlerle paylaştık.Bu seri de C#’a dair bir takım bilgileri beraber incelemek umuyorum hepimiz için faydalı olacaktır.Hemen hemen aynı mantık üzerinden programların çalışmasını anlamaya çalışarak , istediğiniz dilde daha hızlı ilerleyebileceğimizi düşünmekteyiz.
İyi çalışmalar.