Bu yazımda C# dilindeki temel veri türleri, değişken kavramı ve değişken tanımlama, değişken tanımlanırken dikkat edilecek hususlar gibi temel konulardan bahsedicem.
Bütün programlama dillerinde olduğu gibi C#’ta da değişken ve veri tipleri sayı, karakter, metin, tarih, zaman gibi veri tipleriyle tanımlanır.Bir değişken tanımlanacağı zaman, bu değişkene bir isim verilir ve bu değişkenin veri tipi belirlenir. C# programlama dilinde bu işi yapmak için ilk önce veri tipi yazılır, sonra değişken ismi.
DİPNOT: C#da temel veri türleri olmadan hiçbir iş yapamazsınız.Bundan dolayıdır ki "tipi olmayan bir değişken" gibi bir kavram c# da söz konusu olamaz.Bir değişken bildirimi yapılırken o değişkenin veri tipi kesinlikle bildirilmek zorundadır.Sonrasında da o değişkene atanan veriler,belirtilen veri tipinin sınırları ve tipi dışına çıkamaz.
C# dilinde temel olarak veri tipleri ikiye ayrılır, bunlar önceden tanımlanmış veri türleri ve kullanıcı tarafından tanımlanmış veri türleridir. Önceden tanımlanmış veri türleri de kendi arasında referans tipi(reference types) ve değer tipi(value type) olmak üzere ikiye ayrılır. Bu detaylı bilgileri vermeden önce veri tipleri nasıl tanımlanır? , bunları yazarken nelere dikkat etmeliyiz ? gibi temel konulardan bahsetmek istiyorum.
Değişken (Veri Tipi) Nedir ?
DİPNOT: C#da temel veri türleri olmadan hiçbir iş yapamazsınız.Bundan dolayıdır ki "tipi olmayan bir değişken" gibi bir kavram c# da söz konusu olamaz.Bir değişken bildirimi yapılırken o değişkenin veri tipi kesinlikle bildirilmek zorundadır.Sonrasında da o değişkene atanan veriler,belirtilen veri tipinin sınırları ve tipi dışına çıkamaz.
C# dilinde temel olarak veri tipleri ikiye ayrılır, bunlar önceden tanımlanmış veri türleri ve kullanıcı tarafından tanımlanmış veri türleridir. Önceden tanımlanmış veri türleri de kendi arasında referans tipi(reference types) ve değer tipi(value type) olmak üzere ikiye ayrılır. Bu detaylı bilgileri vermeden önce veri tipleri nasıl tanımlanır? , bunları yazarken nelere dikkat etmeliyiz ? gibi temel konulardan bahsetmek istiyorum.
Değişken (Veri Tipi) Nedir ?
Değişkenler, girdiğimiz değerleri alan veya programın çalışmasıyla bazı değerlerin atandığı veri tutuculardır. Değişken tanımlama ise girilecek ve ya programın getireceği verinin ne olduğuna bağlı olarak değişken türünün belirlenmesidir.
Değişken Tanımlama
Değişken tanımlamaları şu şekilde yapılmaktadır.
(Değişken Türü) ( Değişen Adı) = (Değeri)
Çoğu programlama dilinde değişkenler tanımlandıktan sonra direkt olarak programda kullanılabilirler. Ancak C#'ta değişkeni tanımladıktan sonra ayrıca bir de ilk değer atamak zorundayız. Aksi bir durumda değişkeni programımız içinde kullanamayız. Değişkenlere değer atama şöyle yapılır:
ad=5;
Burada ad değişkenine 5 değerini atadık. Bu en basit değer atama yöntemidir. Ayrıca şunlar da mümkündür:
int a=5;
int b, c, d, e;
int f=10, g, m=70;
Tanımlamada Dikkat Edilecek Durumlar
Değişkene verilecek ismin anlaşılır bir isim olması programın okunurluğunu kolaylaştırır. Bir değişken tanımlanırken aşağıdaki kurallar göz önünde bulundurulması gerekir:
- Değişken isimlerini yazarken türkçe kararkter kullanılmaz.
int is,ic; "DOĞRU"
int iş,iç; "YANLIŞ" - Değişken ismi bir harf ile başlamalıdır. Bir rakam veya özel işaretle başlayamaz.
string ad1, ad2 ; "DOĞRU"
string 1ad, 2ad ; "YANLIŞ" - Değişken isminde boşluk bulunamaz. Bunun yerine alt çizgi karakteri kullanılabilir.
string Adi_Soyadi,Dogum_yeri; "DOĞRU"
string Adi ve Soyadi,Dogum yeri; "YANLIŞ" - Değişken isminde sadece harfler, rakamlar ve alt çizgi karakteri bulunabilir.
int alis-tarihi,goruntu.yeri,Maas+prim; "YANLIŞ"
int alis_tarihi,goruntu_yeri,Maas_prim; "DOĞRU" - Değişkene verilecek isim c# komutlarından oluşmamalıdır.
string true ; "YANLIŞ"
string public ; "YANLIŞ" - Değişken ismi 255 karakterden daha fazla olmamalıdır.
string ogrencinin _annesinin_soyadi; "DOĞRU"
DİPNOT: C# da kullanılan özel deyimler değişken ismi olamaz.
SABİTLER
Programımızda bazen değeri hiç değişmeyecek değişkenler tanımlamak isteyebiliriz. Örneğin pi isimli float türünden bir değişken tanımlayıp buna 3.14 değerini verip programımızda pi sayısına ihtiyaç duyulduğunda bu değişkeni kullanabiliriz. Sabit değişkenlerin normal değişkenlerden farkı değişkeni değiştirmek istediğimizde ortaya çıkar, sabit olarak belirtilen değişkeni değiştirirsek derleyici hata verip programımızı derlemez. Bu daha çok uzun program kodlarında işe yarayabilir. Ayrıca sabit değişkenlere tanımlandığı satırda değer vermeliyiz. Herhangi bir değişkeni sabit olarak belirtmemiz için değişken türünden önce const anahtar sözcüğü kullanılır. Örnekler:
- const int a = 5;
- const string b ="deneme";
- const char c ='s';
- Pi sayısı, yer çekimi kuvveti veya ışık hızı gibi değerler değişmeyeceğinden, bir uygulama içerisinde çalıştığı sürece bir sabit ile ifade edilebilir. Bunu, bir dairenin çevresini ve alanını bulmamızı sağlayan bir uygulama yazarak örneklendirelim:
[static void Main(string[] args){ // Pi sayısını sabit olarak tanımlayalım const double pi = 3.14159; // Değişkenleri tanımlayalım double alan, cevre, yaricap; string yaricapGir; Console.WriteLine("Dairenin yarıçapını girin: "); yaricapGir = Console.ReadLine(); yaricap = Convert.ToDouble(yaricapGir); cevre = 2 * pi * yaricap; alan = pi * Math.Pow(yaricap, 2); Console.WriteLine("Dairenin alanı= {0}", alan); Console.WriteLine("Dairenin çevresi= {0}", cevre); Console.ReadKey(); }]Yukarıdaki örneğimizde pi sayısını her defasında tekrar tekrar yazmak yerine, pi isimli bir sabit olarak oluşturduk ve değerini 3.14159 olarak atadık. Pi sayısını bir sabit olarak ifade etmek için const anahtar kelimesini kullandık.
DİPNOT: Sabitler küçük harflerden oluşabilir. Ancak büyük harflerle yazılması adettendir. Örnek: const int SABIT_ADI;
Değişken Türleri
- değer tipleri
- referans tipleri
DEĞER TİPLERİ
[int a = 5; int b = a; Console.WriteLine("a'nın değeri {0}",a); Console.WriteLine("b'nın değeri {0}", b); a = 21; Console.WriteLine("a'nın değeri {0}", a); Console.WriteLine("b'nın değeri {0}", b);]Ekran çıktısı
a'nın değeri 5
b'nin değeri 5
a'nın değeri 21
b'nin değeri 5
REFERANS TİPLERİ
[class referans { int sonuc=0; public void kare(int sayi1) { sonuc=sayi1*sayi1; } public void sonucyaz() { Console.WriteLine(sonuc); } } static void Main(string[] args) { referans yeni = new referans(); yeni.kare(5); yeni.sonucyaz(); referans enyeni = yeni; enyeni.sonucyaz(); yeni.kare(6); yeni.sonucyaz(); enyeni.sonucyaz(); Console.ReadKey(); }]
Ekran çıktısı
25
25
36
36
DİPNOT: C# dilinde bir değişkene herhangi bir değer atamadan onu kullanmak yasaktır. Yani derleme işlemi gerçekleşmez, örneğin aşağıdaki gibi bir kullanım derleme zamanında hata verecektir. Bu yüzden eğer bir değişkeni kullanmak istiyorsak yukarıda açıkladığımız gibi değişkenlere bir değer vermek zorundayız. Bu kural önceden tanımlanmış referans tipleri için de değer tipleri için de geçerlidir.
EK BİLGİLER
25
25
36
36
DİPNOT: C# dilinde bir değişkene herhangi bir değer atamadan onu kullanmak yasaktır. Yani derleme işlemi gerçekleşmez, örneğin aşağıdaki gibi bir kullanım derleme zamanında hata verecektir. Bu yüzden eğer bir değişkeni kullanmak istiyorsak yukarıda açıkladığımız gibi değişkenlere bir değer vermek zorundayız. Bu kural önceden tanımlanmış referans tipleri için de değer tipleri için de geçerlidir.
EK BİLGİLER
- ReadLine() metodunun tuttuğu değer string türündedir.
- WriteLine() metodunda parantezler arasına girilen değer object türünden olmalıdır. Yani herhangi bir türden değer yazılabilir.
- Bütün değişkenler bir değermiş gibi kullanılabilir ancak değerler değişkenmiş gibi kullanılamaz.
- Eğer bir değişkeni tanımlamış veya tanımlayıp değer vermiş, ancak programımızın hiçbir yerinde kullanmamışsak derleyici hata vermez, sadece bir uyarı verir.
- "deneme"+"yalnızlık"+'d'+'m' gibi bir ifade aslında string türünden bir sabittir.
- (3+8/9)*6 gibi bir ifade, byte, sbyte, short, ushort, int, uint, long, ulong veya double türünden değişkenlere atanabilir.
- Aslında C#'ta sabitlerin de türleri vardır. Mesela:
'5' char türünden;
5f float türünden;
12.7 veya 5d veya 5D double türünden; (C# harfi olmayan ondalıklı sayıları double sayar.)
5m decimal türünden;
5 ise int türündendir.
(Çünkü C# herhangi bir ayırt edici özelliği bulunmayan tam sayı sabitleri int türünden sayar. Ancak 5'in türünün int olması 5'in byte türünden bir değişkene atanamayacağı anlamına gelmez. int türünden sabitler byte, sbyte, short, ushort ve uint türünden değişkenlere de atanabilirler.) - Sabitin diğer adı değerdir.
YAZAR: NİSA SEÇİLMİŞ