C# Programlama Dili 1 İlk programımız Tür dönüşümü Yorum ekleme Operatörler
C# Programlama Dili
1
İlk programımız
Tür dönüşümü
Yorum ekleme
Operatörler
İlk Programımız
Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra da programımızı çalıştırmak için komut satırında kod dosyanıza verdiğiniz adı girip enter’a basın.
2
İlk programımızın satır satır
incelenmesi class ilkprogram satırıyla ilkprogram adında yeni bir sınıf
oluştururuz. C#'ta yazdığımız her programın en az bir sınıf içermesi zorunludur.
{ veya } işaretleri herhangi bir sınıfın veya metodun içeriğini belirtmek için kullanılır. İlk { karakteriyle önceki satırda açtığımız ilkprogram adlı sınıfımızın içeriğine alınacak kodların başladığını, programın son satırındaki } karakteriyle de sınıfımızın içeriğine alınacak kodların sona erdiğini belirtiyoruz.
static void Main() satırıyla sınıfımızın içine Main adlı bir metot yerleştirdik. Bu metodun adı mutlaka Main olmalı, yoksa programımız çalışmaz. Ayrıca bu metot mutlaka oluşturduğumuz sınıfın içinde olmalı. Yine { ve } karakterleriyle metodumuzun içeriğini belirledik. Dikkat ettiyseniz bir iç içe { ve } karakterleri söz konusu. Bu durumda koyulan ilk } karakteri son açılan { karakterini kapatır.
3
İlk programımızın satır satır
incelenmesi Programımızın pratikte iş yapan tek kısmı ise System.Console.WriteLine("Merhaba dünya!"); satırı. Bu satırla ekrana Merhaba dünya! yazdırdık, peki nasıl yaptık? Bunun için .Net Framework kütüphanesindeki hazır bir metottan yararlandık. Bu metot System isim alanının altındaki Console sınıfında bulunuyor. Ve bu metodumuzun adı WriteLine ve konsol ekranına yazı yazdırmaya yarıyor. Parantezler arasındaki çift tırnaklar arasına alınan metni ekrana yazdırıyor. Satırın sonundaki ; karakterini ise { ve } karakterleri açıp kapatmayan bütün C# satırlarında kullanmamız gerekiyor.
4
Programımızın ikinci versiyonu
Bu programımız önce ekrana Entera basın! yazar. Kullanıcı enterabastığında da Entera bastınız! yazıp kendini kapatır. Console sınıfına ait olan ReadLine metodu programımızın kullanıcıdan bilgi girişi için beklemesini sağlar, yani programımızı entera basılana kadar bekletir. Kullanıcı entera bastığında da diğer satıra geçilir. Dikkat ettiyseniz ReadLinemetodunda parantezlerin arasına hiçbir şey yazmıyoruz. C#'ta bazı metotların parantezleri arasına birşeyler yazmamız gerekirken, bazı metotlarda da hiçbir şey yazılmaması gerekir.
5
Tür dönüşümü
Modern programlamada birçok kez değişkenlerde tür dönüşümüne ihtiyaç duyulur.
Örneğin string türündeki sayılarla ("5" veya "2" gibi) matematiksel işlem yapmamız gerektiğinde tür dönüşümü yapmamız gerekir.
Aslında bahsettiğimiz tam olarak tür dönüşümü değildir, sadece bir değişkenin değişik türdeki hâlinin başka bir değişkene atanmasıdır.
Tür dönüşümleri bilinçli tür dönüşümü ve bilinçsiz tür dönüşümü olmak üzere ikiye ayrılır.
6
Bilinçsiz tür dönüşümü
C#'ta düşük kapasiteli bir değişken, sabit
ya da değişken ve sabitlerden oluşan
matematiksel ifade daha yüksek kapasiteli
bir değişkene atanabilir.
Buna bilinçsiz tür dönüşümü denir, bunun
için herhangi bir özel kod gerekmez.
7
Bilinçsiz tür dönüşümü
8
Bilinçsiz tür dönüşümü
yapılacabilecekler tablosu
9
Bilinçli Tür Dönüşümü
Bilinçli tür dönüşümü genellikle
derleyicinin izin vermediği durumlarda
kullanılır.
Bilinçli tür dönüşümüyle küçük türün
büyük türe dönüştürülmesi sağlanabilse
de aslında bu gereksizdir, çünkü aynı şeyi
bilinçsiz tür dönüşümüyle de yapabiliriz.
10
Bilinçli Tür Dönüşümü
Programımızda da görebileceğiniz gibi (byte)a ifadesi, a değişkeninin byte hâlini tuttu.
11
Bilinçli Tür Dönüşümü
Aşağıdaki şekil bilinçli tür dönüşümünü anlatmaktadır.
Eğer değişken adı kısmında tek bir değişken yoksa, bir ifade varsa parantez içine alınması gerekir.
Bu şekilde tür dönüşümü değişkenlere uygulanabildiği gibi sabitlere de uygulanabilir:
12
Bilinçli Tür Dönüşümü
Reel türler tam sayı türlere dönüşürken ondalık kısım atılır.
Bilinçsiz tür dönüşümüyle yalnızca küçük türler büyük türlere dönüşebiliyordu, yani veri kaybı olması imkansızdı.
Halbuki bilinçli tür dönüşümünde veri kaybı gerçekleşebilir.
Eğer dönüşümünü yaptığımız değişkenin tuttuğu değer dönüştürülecek türün kapasitesinden büyükse veri kaybı gerçekleşir.
13
Bilinçli Tür Dönüşümü
14
Yorum ekleme
Yorumlar, programa etki etmeyen ancak
kendimizin veya kodu inceleyen bir
başkasının nerede ne yapıldığını anlamasını
sağlayacak yazılardır.
Yorumlar tek satırlık ve çok satırlık olmak
üzere ikiye ayrılır.
15
Tek satırlık yorumlar
C#, iki tane slash'ten (//) sonra gelen aynı
satırdaki yazıları yorum sayar. Örnek:
16
Çok satırlık yorumlar
C#, /* ve */ arasına yazılan herşeyi yorum sayar.
Dolayısıyla da çok satırlık yorumlar yazılabilir.
Örnek:
17
Yorum ekleme
Ayrıca C#'ın bu yorum özelliği
programımızda henüz çalışmasını
istemediğimiz kodlar varsa yararlı
olabilmektedir.
18
Operatörler
Programlama dillerinde tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına operatör denir.
Örneğin a+b ifadesinde + işareti bir operatördür. Operatörlerin etki ettikleri sabit ya da değişkenlere ise operand denir.
Örneğin a+b ifadesinde a ve b birer operanddır. C#'ta operatörlerın bazıları tek, bazıları çift, bazıları da üç operand alır.
19
Operatörler
Peki eğer bir ifadede birden fazla operatör varsa ne olacak?
Örneğin 2+3*7 gibi bir ifadede önce hangi işlem yapılacak?
Burada önce toplama işlemi yapılırsa sonuç 35 olur, ancak önce çarpma işlemi yapılırsa sonuç 23 olur.
İşte C#'ta bu gibi durumları önlemek için operatör önceliği diye kavram bulunmaktadır.
20
Operatörler
Operatör öncelikleri ile ilgili şu kuralları bilmenizde fayda var:
Önce parantez içleri yapılır. Örneğin (3+5)*9 gibi bir ifadede önce toplama işlemi yapılır.
İç içe parantezler söz konusuysa önce en içteki parantez yapılır, sıra ile dıştaki parantezlere gidilir.
Örneğin (2+(9+2)*5)*2 gibi bir ifadede önce 9 ile 2 toplanıp 11 değeri bulur, sonra 11 ile 5 çarpılıp 55 değeri bulunur, sonra 55 ile 2 toplanıp 57 değeri bulunur, en son da 57 ile 2 çarpılıp 114 değeri bulunur.
21
Operatörler
İfadede bir parantez yoksa önce öncelik sırası daha önde olan operatörün işlemi yapılır.
Aşağıdaki tabloda operatörler öncelik sırasına göre listelenmiştir.
Tablo, öncelik sırası en önde olandan en geride olana göre sıralanmıştır. Yani aynı ifadede parantez söz konusu değilse bu tablodaki daha üstte olan operatör daha önce işletilecektir.
22
Operatörler
23
Bir artırma ve bir eksiltme
operatörleri
24
Önce a'nın değeri 1 artırılır, sonra bu değer i'ye atanır.
Önce a'nın değeri i'ye atanır, sonra a'nın değeri 1 artırılır.
Karşılaştırma operatörleri
25
Bu program ekrana alt alta True, True, True, False, False ve True yazacaktır.
as operatörü
Tüm değişken türlerinden objecte ve string değerli
olmak şartıyla objectten stringe dönüşüm yapar. Örnek:
26
is operatörü
Verilen değişken, sabit ya da ifadenin türünü
kontrol eder. Eğer söz konusu değişken, sabit ya
da ifade verilen türle uyumluysa true değilse
false değeri üretir. Eğer söz konusu değişken,
sabit ya da ifadenin türü her zaman true ya da
false üretiliyorsa derleyici uyarı verir, ancak bu
uyarı derlemeye engel değildir. Kullanımına bir
örnek:
27
is operatörü
28
Bu program alt alta True, False, False, False ve False yazacaktır. Dikkat ettiyseniz 12 sabitini byte saymadı ve 12f+7 sabitini de int saymadı. Çünkü C#, harfsiz tam sayı sabitleri int sayar. 12f+7 sabiti de floatlaşmıştır.
Mantıksal operatörler
Bu operatörler true veya false sabit ya da değişkenleri mantıksal ve, veya,
değil işlemine sokarlar. Bunlar && (ve), || (veya) ve ! (değil) operatörleridir.
Örnekler:
29
Eğer ! operatöründen sonra bir değişken ya da sabit yerine bir ifade geliyorsa ifadeyi parantez içine almak zorundayız.
Bitsel operatörler
Bitsel operatörler sayıların kendisi yerine sayıların bitleriyle ilgilenirler.
Diğer bir deyişle sayıları ikilik sisteme dönüştürüp öyle işlem yaparlar.
Bu operatörler yalnızca tam sayı sabit, değişken ya da ifadelerle kullanılabilirler.
Eğer bitsel operatörler bool türünden değişken, sabit ya da ifadelerle kullanılırsa mantıksal operatörlerin gördüğü işin aynısını görürler
30
Bitsel operatörler
~ (bitsel değil), & (bitsel ve), | (bitsel veya) ve ^ (bitsel özel veya)
operatörleri bitsel operatörlerdir. Örnekler:
31
Bitsel kaydırma operatörleri
Bu operatörler (<< ve >>) sayıların bitlerini istenildiği kadar kaydırmak için
kullanılır. << sayıları sola kaydırırken, >> sağa kaydırır. Örnekler:
32
?: operatörü
?: operatörü C#'ta üç operand alan tek operatördür. Verilen koşula
göre verilen değerlerden (object türünden) birini tutar. Kullanımı
şöyledir:
◦ koşul?doğruysa_değer:yanlışsa_değer
33