Bütün programlama dillerinde olduğu gibi C#’ta da değişkenve veri tipleri sayı, karakter, metin, tarih, zaman gibi veri tipleriyletanımlanır.
Bir değişkentanımlanacağı zaman, bu değişkene bir isim verilir ve bu değişkenin veri tipi belirlenir. C# programlamadilinde bu işi yapmak için ilk önce veri tipi yazılır, sonra değişken ismi.
// hataKodu ismiyletamsayı veri tipinde bir değişken tanımlanması
int hataKodu;
// hataMesaji ismiyle metin veri tipinde bir değişken tanımlanması
string hataMesaji;
Ortak Veri Tipleri :
C# Adı |
VB Adı |
.NET Tip Adı |
Kapsamı |
byte |
Byte |
Byte |
0-255 arası |
short |
Short |
Int16 |
-32,768 – 32,767 arası |
int |
Integer |
Int32 |
-2,147,483,648 ile
2,147,483,647 arası |
long |
Long |
Int64 |
-9.2e18 – 9.2e18 arası |
float |
Single |
Single |
Büyük sayılar : -3.4e38 ile 3.4e38 arasındaki gerçek sayılar
Küçük Sayılar : -1.5e-45 ile 1.5e-45 arasındaki gerçek sayılar |
double |
Double |
Double |
Büyük sayılar : -1.8e308 ile 1.8e308 arasındaki kesirli sayılar
Küçük Sayılar : -0.5e-324 ile 5.0e-324 arasındaki kesirli sayılar |
decimal |
Decimal |
Decimal |
Virgülden sonra 28 basamağa kadar destekleyen 128 bit uzunluğundaki kesirli sayılar |
char |
Char |
Char |
Unicode karakter |
string |
String |
String |
Değişken uzunlukta Unicode karakterlerden oluşan seri |
bool |
Boolean |
Boolean |
Doğru ya da Yanlış değeri |
DateTime |
Date |
DateTime |
01/Ocak/0001 12:00:00 AM ile
31/Aralık/9999 11:59:59 PM arasındaki tarihleri belirtir.
Zaman değeri 100 nano-saniye ye kadar çözümlenebilir.
Bu veritipi, 64 bit uzunluğunda bir tamsayı olarak tutulur. |
TimeSpan |
TimeSpan |
TimeSpan |
“10 Saniye”, “3 gün” gibi bir zaman sürecini temsil eder. Temsil edilebilecek en küçük zaman dilimi 1 tıktır(100 nanosaniye). |
object |
Object |
Object |
Bütün .NET tiplerinin temel sınıfını oluşturur. Herhangi bir veri tipi ya da nesneyi içerebilir. |
Değişkenleri tanımladıktan sonra, bu değişkenlerebaşlangıç değerlerinin atanması gerekir. Bu iki adımlık süreç aşağıdaki kod bloğundagösterilmiştir:
//Değişkenlerin Oluşturulması
int hataKodu;
string hataMesaji;
//Değişkenlere ilk değerlerinin atanması
hataKodu = 105;
hataMesaji = "LütfenGeçerli Bir Tarih Yazınız.";
Yukarıdaki iki adım halinde değişkenlerintanımlanması ve başlangıç değerlerinin atanması işlemi her bir değişken içinaynı satırda da yapılabilir. Şöyle ki:
//Değişkenlerin Oluşturulması ve BaşlangıçDeğerlerinin Atanması
int hataKodu = 105;
string hataMesaji = "LütfenGeçerli Bir Tarih Yazınız.";
C# programla dilinde, başlangıç değerleri atanmamışdeğişkenlerle işlem yapılması hatalara sebep olur. Örneğin :
int tekrarSayisi; //Başlangıç Değeri Atanmamış değişken
tekrarSayisi = tekrarSayisi + 1; //Error : Use of unassigned local variable'tekrarSayisi'
Bu kod bloğunu derlemeye çalışılırsa,yukarıda kırmızı ile belirtilen hata alınacaktır. Aslında, C#’ın yazılımgeliştiriciyi bu şekilde kontrol etmesi, çok iyi bir özelliktir. Zira, yazılımgeliştiricinin değişkenlerin başlangıç değerlerini atamış olması kontroledilmiş olur.
Yukarıdaki hata alınmadan bu kod bloğu aşağıdakigibi yazılarak çalışması sağlanabilir:
int tekrarSayisi=0; //Başlangıç Değeri Olarak Sıfır (0) atanmıştır
tekrarSayisi = tekrarSayisi + 1; //Her hangi bir hata alınmaz
C# aynı zamanda, veri tiplerine doğru değerlerin atanmasınaçok önem verir. Örneğin aşağıdaki değişken tanımlaması hata verecektir:
decimal sayi1 = 9.5;//Literal oftype double cannot be implicitly converted to type 'decimal'; use an 'M' suffixto create a literal of this type
Buradaki hatanın sebebi şudur: C# 9.5 sayısını öncelikledouble olarak yorumlar ancak, değişken decimal olarak tanımlanmıştır. Doubletipindeki bir sayı herhangi bir CAST sözdizimi kullanılmaksızın doğrudandecimal veri tipine dönüştürülemez. Bu sorundan kurtulmanın yolu, 9.5 sonuna Mkarakterinin yazılmasıdır. Bu durumda C#, decimal değerler için belirlenmişolan M karakterini gördüğünde, 9.5 sayısını double değil decimal olarakyorumlayacaktır. Bu şekilde hem derleme hatası ortadan kalkmış olur, hem de doubledeğeri decimal’a çevirmek için herhangi bir CAST söz dizimine ihtiyaç olmaz.
Doğru söz dizimi şu şekilde olmalıdır:
decimal sayi1 = 9.5M;
Bu durumla aynı özellikteki diğer veri tipleri için,değişken değerlerinin sonunda şu karakterler kullanılmalıdır:
-
M (decimal veri tipleri için)
-
D (double veri tipleri için)
-
F (Float veri tipleri için)
-
L (Long veri tipleri için)
Burada, C# derleyicisi bir noktada daha kolaylıksağlamaktadır. Şöyle ki:
Herhangi bir değişken var anahtar kelimesiylebirlikte tanımlanarak aşağıdaki gibi, sonunda da veri tipi için geçerli olankarakter eklendiği zaman, bu değişkenin veri tipinin belirtilmesine gerek kalmamaktadır.Yani:
var sayi1 = 9.5M;
Değişken tanımlaması ve başlangıçdeğerinin atanmasının tek satırda yapıldığı yukarıdaki kod satırı hata vermedenderlenecektir.
String ve Kaçış Karakterleri (Escape Characters)
C#, ters slash(\) işaretini, herhangi bir kaçış karakterinin başlangıcı şeklinde yorumlar. Örneğin \n “yeni satır” anlamına gelir. En çok kullanılan Escape Karakterleri aşağıdakilerdir:
-
\” :Çift Tırnak
-
\n :Yeni Satır
-
\t :Yatay tab
-
\\ :Ters Slash
Ayrıca, örneğin \x123 söz dizimini kullanarak 16lı sayı sistemine göre değeri 132 olan karakteri string içine eklenebilir.
Örnek:
string path = "C:\\MyApp\\MyFiles";
path = @"C:\MyApp\MyFiles";
Yukarıdaki iki örnekten birincisinde (\) ters slash kullanılarak path yazılmıştır. İkincisinde ise string karakterlerinin başında (@) işareti kullanılarak, sonrasında gelen escape (kaçış) karakterlerinin devre dışı kalması sağlanmıştır.