Professional Documents
Culture Documents
C Calisma Tumu PDF
C Calisma Tumu PDF
2. C# PROGRAMINA GĠRĠġ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Merhaba Dünya Programi
namespace ilkuygulama
{
class merhaba
{
static void Main(string[] args)
{
Console.WriteLine("merhaba Dünya");
Console.WriteLine("Çıkmak için herhangi bir tuşa basın");
Console.ReadKey();
}
}
}
Sayfa 1
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
ġimdi programı inceleyelim.
Yorum satırı // Eğer yapacağımız açıklama tek satırdan oluşuyorsa bunun için iki tane bölü işareti // kullanılır.
// Merhaba dünya C # programı.
/ * "Merhaba Dünya!" C # programı. Bu program ekranda "Merhaba Dünya!" mesajı görüntüler görüntüler. * /
Console.WriteLine("…"); : Kod satırı ekrana mesaj yazdırır. Mesajı ekrana yazıp bir satır aşağı iner. Bir alt satılra
inmesini Line ifadesi gerçekleştirir. Eğer Console.Write("..."); kullanılmış olsaydı alt satıra inmezdi.
Console.WriteLine("…"); ifadesi ile Console.Write("...\n"); ifadesi aynı işlemi gerçekleştiri. Çünkü Line ve \n aynı
işlemleri gerçekleştirir.
Console.Write("merhaba dünya"); : Aynı görevi görmekle beraber imleci bir alt satıra indirmez.
Console.ReadKey(); : Herhangi bir tuşa basılmasını bekler. Bu kod kullanılmazsa konsol penceresi açılıp hemen
kapanacaktır. Bunun yerine ctrl+f5 tuş kombinasyonu da kullanılabilir.
void Main : C# konsol uygulamasında bir void main metodu bulunmalıdır, programımız bu kontrol ile başlar ve
biter.
Sayfa 2
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
2.2 Değişkenler Ve Sabitler
2.2.1 Değişkenler
Değişkenler bir programlama dilinde verilerin depolanma alanlarını temsil eder. Tanımlanan her değişkene
bellek bölgesinden bir alan ayrılır. Bu bellek bölgesine okuma ve yazma işlemleri ise değişken ismi
üzerinden sağlanır. Kısacası; Değişken, her seferinde farklı değerler içerebilen yapıdır.
Yapı:
Örnek:
int i;
int i, k, n;
“ , “Bir veri tipiyle birden fazla değişken tanımlanabilirken ‘virgül işareti’ ile birbirinden ayrılır.
“;” Her kod satırının sonunda, kod satırının sona erdiğini belirten ‘noktalı virgül işareti’ mutlaka kullanılır.
Örnek:
bool dogrumu = false;
double yuzde = 98.32, ortalama = 35.32;
char karakter = 'A';
“+,-,*,/” operatörleri kullanılarak hesaplama işlemleri yapılabilir. Sağda hesaplanan değerler soldaki
değişkene atanmış oluyor.
Örnek:
int a, b, c, d;
a = 1 + 2;
b = 2 - 1;
c = 5 * 2;
d = 10 / 2;
Sayfa 3
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Yaşam Döngüleri:
Tanımlanan yerel değişkenler sadece tanımlandıkları bloktan erişebilir. Yaşam döngüleri sadece o blok
olduğu için başka bir bloktan erişilemez.
Örnek:
namespace CosmicBilisim
{
class Program
{
static void Main(string[] args)
{
{ //Birinci blok
int a = 10;
}
{ //İkinci blok
int a = 20;
}
}
}
}
Birçok programlama dili küçük ve büyük harflere duyarlıdır. SAYİ, sayi, Sayi değişkenleri farklı değişkenlerdir.
byte sayi, Sayi, SAYİ; //3 farklı değişken tanımlamış olduk.
Değişkenlerin ilk karakteri harf ya da _ (alt çizgi) ile başlamalıdır. Sayı veya diğer özel karakterlerle
başlayamaz. İlk karakter dışında değişken içinde sayı olabilir.
int sayi;//doğru kullanım
int _sayi;//doğru kullanım
int 1sayi;//yanlış kullanım
int sayi1;//doğru kullanım
Değişken içinde _(alt çizgi) dışında özel karakterler !, ], ?, -, }, >, ” gibi kullanılamaz.
int sayi?;//yanlış kullanım
int [sayi];//yanlış kullanım
Bazı yerlerde hata vermese bile, Türkçe karakterler kullanmamaya dikkat etmeliyiz.
Türkçe Karakterler: ç, ı, ü, ğ, ö, Ģ, Ġ, Ğ, Ü, Ö, ġ, Ç
Sayfa 4
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Standart yazım şekilleri:
Camel notasyonunda isim küçük harfle başlar, eğer değişken isminde birden fazla kelime geçiyor ise
isimdeki diğer kelimeler büyük harfle başlar.
Camel Notasyonu:
maas;
maasMiktari;
massMiktariAciklama;
Pascal Notasyonunda kelime büyük harfle başlar. Camel Notasyonunda da olduğu gibi diğer
kelimelerde büyük harfle başlar.
Pascal Notasyonu:
Maas();
MaasHesapla();
Bu notasyonların kullanımı mecburi değildir. Fakat sürekli olarak bu tür bir notasyona uyarak
kodlarınızı yazarsanız, kodlarınız daha anlaşılır bir hâle girer.
Eğer ondalıklı sayı tanımlanmak istenirse veri tipi double olarak belirtilmelidir.
char, veri tipi tek karakterleri veya özel karakterleri barındırır. Char değişkeninin değerleri her zaman tek tırnak „…‟
içerisine yazılmalıdır. Char değişkenlerine sayılar da atanabilir. Çünkü sayılarda birer karakterdir.
string, veri tipleri birden çok karakteri barındırır. String ifadeler çift tırnak “…” içerisinde kullanılır. + operatörü
kullanılarak iki veya daha fazla string beraber kullanılabilir.
string s = "bu";
string ss = s + " string bir ifadedir.";
Tip Dönüşümleri
Bir veri tipinde tanımlamış olduğunuz bir değişkeni başka bir veri tipine dönüştürebilirsiniz. Bu aşağıdaki örnekte
gösterilmiştir. Bu durumda int tam sayıları kapsadığı için i‟nin değeri 7 olur.
Double d = 7.5;
int i = (int)d;
Eğer sayı ve string ifadeleri birbirine dönüştürmek istenirse, bunun için özel dönüştürme yöntemleri kullanılır.
Bunun için convert metodu kullanılır.
int i = 5;
string s = Convert.ToString(i);//i int’ten string’e dönüştürüldü.
double d = Convert.ToDouble(i);//i string’ten double çevrildi.
byte b = Convert.ToByte(i);// i byte dönüştürüldü.
sbyte sb = Convert.ToSByte(i);// i sbyte'a dönüştürüldü.
short srt = Convert.ToInt16(i);// i short'a dönüştürüldü.
ushort usrt = Convert.ToUInt16(i);// i ushort'a dönüştürüldü.
int nt = Convert.ToInt32(i);// i int'e dönüştürüldü.
long lng = Convert.ToInt64(i);// i long'a dönüştürüldü.
ulong ulng = Convert.ToUInt64(i);// i ulong'a dönüştürüldü.
float flt = Convert.ToSingle(i);// i float'a dönüştürüldü.
decimal dclm = Convert.ToDecimal(i);// i decimal'e dönüştürüldü.
char chr = Convert.ToChar(i);// i char'a dönüştürüldü.
bool bl = Convert.ToBoolean(i);// i bool'a dönüştürüldü.
Sayfa 5
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
2.2 .2 Sabitler
Sabitlerin değeri bir kere belirlendikten sonra başka bir yerde değiştirilemez. Bir sabit tanımlamak için
const anahtar kelimesini kullanırız.
Yapı:
const <veri tipi><değişken adı>=değer;
Sayfa 6
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
2.3 Veri Tipleri
.Net de iki çeşit veri tipi vardır:
Değer tipleri belleğin „stack‟ bölgesinde saklanır ve veriyi direkt olarak bellek bölgesinden alırken referans tipleri
bellekte „heap‟ alanında saklanır. Yani referans tipleri içinde veri değil bellekteki „heap‟ alanının adres bilgisini
tutarlar.
Değer Tipleri
Type Adı CTS Karşılığı Boyut(size) Değer aralığı
Tam Sayı Veri Tipleri
byte Byte 8 bit işaretsiz tam sayı 0 ile 255
sbyte SByte 8 bit işaretli tam sayı -128 ile 127
short Int16 16 bit işaretli tam sayı -32.768 ile 32.767
ushort UInt16 16 bit işaretsiz tam sayı 0 ile 65.535
int Int32 32 bit işaretli tam sayı -2.147.483.648 ile 2.147.483.647
uint UInt32 32 bit işaretsiz tam sayı 0 ile 4.294.967.295
-9.223.372.036.854.775.808 ile
long Int64 64 bit işaretli tam sayı
+9.223.372.036.854.775.807
ulong UInt64 64 bit işaretsiz tam sayı 0 ile 18.446.744.073.709.551.615
Noktalı Sayı Veri Tipleri
float Single 32 bit -3.4 × 1038 ile +3.4 × 1038
double Double 64 bit ±5.0 × 10−324 ile ±1.7 × 10308
decimal Decimal 128 bit ±1,5*10-28 ile ±7,9*1028
Diğer Veri Tipleri
Char Char 16 bit karakterleri temsil eder Tek karakter
String String 16bit*karakter adedi Karakter dizisi
bool Boolean 32 bit True veya False
Referans Tipleri
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Ģkeni 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.
Değişkenlerin tuttukları değerlerin türünü ve bellekte ki büyüklüğünü tanımlar. Şimdi yukarıda gösterilmiş olan
veri tiplerine örnekler verelim.
Sayfa 7
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
byte x = 10, y = 5;
x ve y değişkenleri byte olarak tanımlanmış olup değerleri atanmıştır. Programımızda bu değerlerle aritmetik
işlem yaptığımız zaman çıkan sonuç int olacaktır. Çünkü sayısal ifadelerde varsayılan değer int‟tir.
Temel şey şu, boyutu kendisinden küçük bir veri tipine atama yapıldığı zaman tip dönüşümü gerekir. Örneğin int
veri tipinde bir değişkeni byte veri tipinde bir değişkene atama yapabilmek için dönüşüm yapılması gerekir.
Bunun tam tersi için sorun olmaz. Bu diğer sayısal veri tipleri için de geçerlidir.
byte x = 10, y = 5;
int z = x + y;// int>byte olduğu için sorun olmaz
sbyte s = 127;
short st = 32767;
ushort us = 65535;
int i = 123;
long veri tipinin sonunda istenilirse l veya L harfi kullanılabilir.
Eğer float değeri virgüllü bir sayı ise değerin sonuna f veya F eklenmelidir.
float f = 3.5F;
double d = 3.6D;
Sayfa 8
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
2.4 Operatörler
Operatörler, tek başlarına kullanıldıklarında bir anlam ifade etmeyen, ancak programın işleyişine katkıda bulunan
karakterlere operatör denir.
Operatör Açıklama
+ Toplama iĢlemi
- Çıkarma iĢlemi
* Çarpma iĢlemi
/ Bölme iĢlemi
% Mod alma iĢlemi
+ Operatörü
- Operatörü
* Operatörü
Sayfa 9
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Çarpma işlemi için kullanılır.
/ Operatörü
Bu örneğin sonucunda bol değişkeninin veri tipi int olarak tanımlandığı için bölüm 7 çıkacaktır.
Bir sayının başka bir sayıya bölümünden kalan sonucu alma işlemine mod alma denir.
Bu işlemi yapmak için % karakteri kullanılır.
Sayfa 10
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Operatör Açıklama
== EĢittir
!= EĢit değildir
< Küçüktür
> Büyüktür
<= Küçük eĢittir
>= Büyük eĢittir
İlişkisel operatörler iki değerin karşılaştırılması işlemi için kullanılır. Programımızda koşul ifadelerinde kullanılarak
programın akşını değiştirmemizi sağlar.
Karşılaştırma sonucunda işlem doğru çıkarsa True (doğru), yanlış çıkarsa False (yanlış) olmak üzere boolen bir
değer döndürür.
Karşılaştırılan ifadelerin aynı türde olması gerekir. Yani bir sayı ile karakter ifadesi karşılaştırılamaz.
= = Operatörü : Aynı türdeki iki değerin birbirine eşitliğini kontrol eden operatördür. Bu iki değer birbirine eşit
ise True değilse False değeri döndürülür.
!= Operatörü: Aynı türdeki iki değerin birbirine eşit olmadığının (eşit değil) kontrolü
için kullanılan operatördür.
< Operatörü: Bir değerin aynı türdeki başka bir değerden küçüklüğünün kontrolünün yapıldığı operatördür. Bu
operatör string ifadelerde kullanılmaz. Char ifadelerinde kullanılabilir.
Sayfa 11
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
static void Main(string[] args)
{
int x = 7;
int y =5;
string s1 = "bilyazilim";
string s2 = ".net";
Console.WriteLine(x < y);// false
Console.WriteLine(s2<s1);//hata:bu operatör string ifadelerde kullanılamaz.
Console.WriteLine(3 < 3);// false
Console.WriteLine('a'<'z'); // true
}
> Operatörü: Bir değerin aynı türdeki başka bir değerden büyüklüğünün kontrolünün yapıldığı operatördür. Bu
operatör string ifadelerde kullanılmaz. Char ifadelerinde kullanılabilir.
<= Operatörü: Bir değerin aynı türdeki başka bir değerden küçük veya eşitliği kontrolünün yapıldığı operatördür.
Bu operatör string işlemlere uygulanmaz.
>= Operatörü: Bir değerin aynı türdeki başka bir değerden büyük veya eşitliği kontrolünün yapıldığı
operatördür. Bu operatör string işlemlere uygulanmaz.
Operatör Açıklama
Sayfa 12
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
= Atama (sağdaki ifadeyi soldaki ifadeye atar.)
+= Sağdaki ifadeyi soldakine ekle
-= Sağdaki ifadeyi soldakinden çıkar.
*= Sağdaki ifadeyi soldakine çarp
/= Sağdaki ifadeyi soldakine böl
%= Soldaki ifadenin sağdaki ifadeye bölümünden kalan (sol mod sağ)
++ Ġfadenin değerini bir arttırır.
-- Ġfadenin değerini bir azaltır.
= Operatörü: Bu operatörle sağdaki ifade soldaki ifadeye atanmış olur. Bu operatörü çok sık kullanılır.
Operatörrün solunda yalnızca bir tane değişken olmalıdır.
+= operatörü: sağdaki ifade soldaki ifadeye eklenir. Sonuç soldaki ifadenin değeri olur.
int x = 19, y = 5;
x += y; //y değeri x eklenir x son değeri 24 olur. x=x+y aynı işlemi yapar.
//x+=y; ile x=x+y; aynı işlemi yapar.
y += x + 5;//(x+5) ifadesi y'ye eklenir. y değeri 34 olur.
Bir bir artırma işlemi için x+=1 (veya x=x+1) yerine x++ işlemi kullanılabilir.
++ değişkenden sonra kullanılırsa önce atama işlemi yapılır sonra artırma yapılır.
++ değişkenden önce kullanılırsa önce artırım yapılır daha sonra atama işlemi yapılır.
= operatörü: sağdaki ifadeden soldaki ifadeyi çıkarır. Sonuç soldaki ifadenin değeri olur.
byte x = 7, y = 5;
x -= y;// x=x-y; sonuç x in değeri 2 olur.
y -= 2;// y nin değeri 2 azaltılmış oldu. y 3 oldu.
Sayfa 13
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
*= operatörü: sağdaki ifade ile soldaki ifade çarpılır. Sonuç soldaki ifadenin değeri olur.
byte x = 7, y = 5;
x *= y;// x=x*y; sonuç x in değeri 35 olur.
y *= 2;// y=y*2; y nin değeri 10 olur.
/=operatörü: sağdaki ifade soldaki ifadeye bölünür. Sonuç soldaki ifadenin değeri olur.
byte x = 10, y = 5;
x /= y;// x=x/y; sonuç x in değeri 2 olur.
y /= 2;// y=y/2; y nin değeri 2 olur.
%= operatörü: soldaki ifadenin sağdaki ifadeye bölümünden kalan bulunur. Bu kalan değer soldaki ifadenin
değeri olur.
++ operatörü: bir değişkenin değerini bir artırır. Değişkenin önünde ve arkasında kullanılabilir. Önünde
kullanıldığında önce değişkenin değerini artırır sonra atama yapar. Arkasında kullanıldığı zaman önce atama
yapar sonra artırır. Örnekler üzerinde inceleyelim.
-- operatörü: Bir değişkenin değerini azaltır. Değişkenin önünde ve arkasında kullanılabilir. Önünde
kullanıldığında önce değişkenin değerini azaltır sonra atama yapar. Arkasında kullanıldığı zaman önce atama
yapar sonra azaltır. Örnekler üzerinde inceleyelim.
Mantıksal değerler birden fazla koşulun olduğu durumlarda kullanılır. Bütün boolen değerlerini tek bir boolen
değere dönüştürmede kullanılır.
Sayfa 14
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Operatör Açıklama
&& Mantıksal ve
& Bitsel ve
|| Mantıkasl veya
| Bitsel veya
! Değil
&& operatörü: Mantıksal ve operatörü bütün koşulların doğru (true) olması durumunda sonuç doğru (true),
koşullardan herhangi biri yanlış (false) olduğu zaman sonuç yanlış (false) olur.
& ile && operatörü aynı işlemi yaparlar. Birden fazla koşulda && operatörü false
gördüğü anda diğer koşullara bakmadan sonuç false olur. & operatörü ise bütün
koşullara bakar ve sonucu öyle belirler. Onun için &&, & den daha hızlı
çalışabilir.
|| operatörü: Mantıksal ve operatörü bütün koşulların false (yanlış) olması durumunda sonuç false (yanlış),
koşullardan herhangi biri true (doğru) olduğu zaman sonuç true (doğru) olur.
| ile || operatörü aynı işlemi yaparlar. Birden fazla koşulda || operatörü true
gördüğü anda diğer koşullara bakmadan sonuç true olur. | operatörü ise bütün
koşullara bakar ve sonucu öyle belirler. Onun için ||, | den daha hızlı
çalışabilir.
?: KoĢul Operatörü : Verilen koşula göre iki ifadeden biri çalışır. Koşun doğru olması ve yanlış olması durumuna
göre çalışır.
Kullanımı:
Sayfa 15
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Koşul ? a : b // koşul doğruysa a, değilse b olur.
Yapılan işlemde yukarıdaki sıra tamamlandıktan sonra eğer aynı tür işlemler kaldıysa işlem soldan sağa doğru
yapılır.
Yukarıdaki işlemde önce 3 ile 5‟i toplar ve sonucu 2 ile çarparsanız sonuç yanlış çıkar.
İşlem önceliğine göre önce 2 ile 5‟i çarpıp çıkan sonuçla 3‟ü topladığımız zaman sonuç doğru çıkar.
Console.WriteLine() :bu komutu daha önceki derslerde sık sık kullandık. Ekrana bilgi gösterme komutudur. Bilgiyi
ekranda gösterir ve imleci bir alt satıra indirir.
Sayfa 16
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Console.WriteLine("bilyazilim.net");//Ekrana bilyazilim.net yazılacaktır.
Console.ReadLine() : bu komut klavyeden değerler okunmasına ve bir değişkene değer atamak için kullanılır.
C# programında klavyede bir veri girildiği zaman program bunu string olarak alır. Bunun için string bir ifade
girildiği zaman dönüştürmeye gerek yoktur. Ama string dışında bir veri girildiği zaman mutlaka o veri tipine
dönüştürmek gerekiyor.
string s = Console.ReadLine();
Bu örneğimizde ise Console.ReadLine() ile klavyeden değer giriyoruz. Convert.ToInt32 ile de klavyeden girilen
değerin int veri tipine dönüştürüyoruz. Dönüştürmek anlamına gelen Convert burada anahtar kelimedir. To.Int32
ise dönüşüm yapılacağı veri tipini gösteriyor.
ÇıkıĢ parametreleri:
Çıktısı:
1. sayıyı giriniz:5
2. sayıyı giriniz:7
x+y=12
Örneği inceleyelim.
int x, y;
Sayfa 17
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
x = Convert.ToInt32(Console.ReadLine());
Bu kodla Console.ReadLine() ile klavyeden değer girilmesini sağlıyor, Convert.ToInt32 ile int veri tipine
dönüştürüyor ve = ile girilen değeri x değişkenine atama yapıyor.
y = Convert.ToInt32(Console.ReadLine());
Bu kodla Console.ReadLine() ile klavyeden değer girilmesini sağlıyor, Convert.ToInt32 ile int veri tipine dönüştürüyor
ve = ile girilen değeri y değişkenine atama yapıyor.
Console.WriteLine("x+y="+ (x + y));
+ operatörünün birleştirme ve toplama işlemlerini yaptığını operatörler konusunda anlatmıştık. İşte bu kodda
(x+y) ile toplama işlemi, diğer + operatörü toplam değeri ile açıklamayı birleştiriyor. Açıklama ifadeleri “…” (çift
tırnak) içine yazılır. Değişkenler ise “…” içine yazılmaz.
Console.ReadKey();
İşlemi ekranda gösterdikten sonra bir tuşa basılmasını bekler. Ctrl+f5 ile aynı işlevi görür.
{0} ifadesi: Bilgileri istenilen bir şekilde ekranda göstermek için {0} ifadesini de kullanılabilir. Virgülden sonra
tanımlanan ilk değişken değeri {0} yerine yazılır. Bu örnek üzerinde daha iyi anlaşılacaktır. Yukarıda ki örneği alıp
biraz değiştirelim.
Çıktısı:
1. sayıyı giriniz:5
2. sayıyı giriniz:7
5+7=12
Yukarıdaki örnekle aynı işlemi yapıyor. Sadece sonucu gösterme şekli farklı. Bu kullanım biraz daha kullanışlı
diyebiliriz.
Örneği inceleyelim.
Sayfa 18
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Console.WriteLine("{0}+{1}={2}",x,y,(x + y));
Birinci virgülden sonra x değerini {0} yerine yazdı. İkinci virgülden sonraki y değerini {1} yerine yazdı. Üçüncü
virgülden sonraki (x+y) değerini {2} yerine yazdı. Bu şekilde aynı anda birden fazla değişken ekrana yazdırılmak
isteniyorsa {0},{1},{2}… şeklinde devam eder. Değişkenler virgülle ayrılarak tanımlanır. Konunun mantığını
kavradıktan sonra işlemler çok kolay oluyor. Bakın aynı işlemi yapan farklı iki kod göstereyim.
ve
Console.WriteLine(x+"+"+y+"="+(x+y));
Aradaki farkı siz bulun. Aynı işlemi yapıyorlar. Ama gidiş yolu farklı.
Çıktısı:
Sayfa 19
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Tarih formatlama
Hazırlayacağımız programın en önemli özelliklerinden biri de stabil çalışması olmalıdır. Stabil çalışması
programımızın hatalara karşı ne kadar hazırlıklı ve kullanıcıya verdiği geri dönütle eş değerdir.
Sayfa 20
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Programımızın çalışması sırasında oluşabilecek hatalar genellikle kullanıcı girişlerinden kaynaklanır. Bu yüzden
kullanıcı girişlerini kontrol altına alarak çalışma zamanında oluşabilecek hataları en aza indirmek ise biz
programcıların görevidir.
Önce hatalar oluştuğunda programın nasıl sonlandığını görelim daha sonra bunun için bir çözüm arayalım.
Örnek:
Ekran çıktısı
Programda istenilen sayı yerine „string‟ bir ifade girdiğimiz zaman ekran çıktısı aşağıdaki gibi olacaktır. „String‟
ifade „int‟ tipine çevrilmede zorlanılacağından program duracaktır. Giriş dizesinin doğru olmadığına dair bir hata
verecektir (Input string was notin a corrent format.) .
Yukarıdaki kodlarda da görüldüğü gibi program esnasında kullanıcılar tarafından yapılan hatalı girişler programın
hatayla karşılaşmasına ve durmasına sebep olmaktadır. Biz bu hataları program içinde nasıl yakalarız ve
kullanıcıya hata hakkında nasıl mesaj veririz buna bakalım.
.Net programcılıkta biz bu tür hatalara istisnalar(Exception) diyoruz. İstisnalar, programımızın çalışma zamanında
yani program çalışırken ortaya çıkan olağan dışı durumlardır.
.NET ortamında her şey gibi istisnalar da sınıflar kullanılarak oluşturulmakta ve tüm istisnalar temel
System.Exception nesnesinden türetilmektedir.
Sayfa 21
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
İstisnaları program esnasında yakalamak ve kullanıcıya hata mesajını vermek için try{} catch{} finally{} bloklarını
kullanıyoruz.
finally{} bloku: Try bloku içinde hata olsa da olmasa da çalışmasını istediğimiz kodların yazıldığı bloktur. Finally
bloğu genellikle bazı kaynakları serbest bırakmak için kullanılır. Kullanılması isteğe bağlı bir
bloktur. En sık kullanıldığı yerler açık olan veri tabanı bağlantılarının program kırılsa da kırılmasa
da kapatılması durumlarıdır.
Örnek :
static void Main(string[] args)
{
int x, y;
Console.Write("1. Sayıyı Giriniz: ");
x = Convert.ToInt16(Console.ReadLine());
Console.Write("2. Sayıyı Giriniz: ");
y = Convert.ToInt16(Console.ReadLine());
try
{
Console.WriteLine("{0} / {1} = {2}", x, y, x / y);
}
catch (Exception e)
{
Console.WriteLine("Hata Oluştu : {0}", e);
}
finally
{
Console.WriteLine("İyi Günler");
}
Console.ReadKey();
}
Programımızı çalıştırıp aşağıdaki gibi değerleri girdiğimiz zaman herhangi bir hatayla karşılaşılmadığından
istediğimiz sonucu üretecektir.
Ekran Çıktısı
Fakat programımıza aşağıdaki değerleri girdiğimiz zaman hatayla karşılaşılacak ve programımız olduğu yerde
durup catch{} blokuna atlayacak ve buradan çalışmaya devam edecektir.
Ekran Çıktısı
Açıklama Satırları
Açıklama satırları programcıya kod içinde tanımlama metinleri yazma imkânı sağlar. Bu sayede kod parçacıklarının
ne iş yaptıkları anlatılmış olur. Kodlarımız arasına açıklama satırları eklemek oldukça önemlidir.
Sayfa 22
2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI
Az satırlı program kodlarında bir şey ifade etmeyebilir fakat büyük programlarda kod bloklarının ne işe yaradıkları
yazılarak programcının ileride karşılaşacağı problemleri kolay çözmesinde yardımcı olacaktır.
Ayrıca açıklama satırları program derlenirken dosya içerisine alınmadığından oluşan dosyanın boyutunu ya da
çalışmasını etkilememektedir.
// karakterlerinden sonra gelen ve satırın sonuna kadar olan sözcükler yorum satırlarıdır ve programlama dili
derleyicisi tarafından görünmez.
Aynı zamanda birden fazla satıra yorum eklemek istiyorsak /* */ karakterleri arasına yorum yazarız.
Sayfa 23