360 likes | 801 Views
C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler. İlk Programımız.
E N D
C# Programlama Dili • İ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.
İ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.
İ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.
Programımızın ikinci versiyonu • Bu programımız önce ekrana Entera basın! yazar. Kullanıcı entera bastığı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 ReadLine metodunda 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.
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.
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.
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.
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.
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:
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.
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.
Tek satırlık yorumlar • C#, iki tane slash'ten (//) sonra gelen aynı satırdaki yazıları yorum sayar. Örnek:
Ç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:
Yorum ekleme • Ayrıca C#'ın bu yorum özelliği programımızda henüz çalışmasını istemediğimiz kodlar varsa yararlı olabilmektedir.
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.
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.
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.
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.
Bir artırma ve bir eksiltme operatörleri Önce a'nın değeri i'ye atanır, sonra a'nın değeri 1 artırılır. Önce a'nın değeri 1 artırılır, sonra bu değer i'ye atanır.
Karşılaştırma operatörleri 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:
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:
is operatörü 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: 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
Bitsel operatörler • ~ (bitsel değil), & (bitsel ve), | (bitsel veya) ve ^ (bitsel özel veya) operatörleri bitsel operatörlerdir. Örnekler:
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:
?: 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