C# Değişkenler

  • 172
  • (2)
  • (5)
  • 20 May 2017

C# Değişken Türleri

C# dilinde birçok veri türü bulunmaktadır. Bunlara değişken türleri ya da değişkenler de denmektedir.

Veri türlerini temelde ikiye ayırmaktayız. Referans türleri ve değer türleri. Bu içerikte tamamen değer türleri ele alınacaktır. Ancak aradaki farka kısa değinmekte fayda var.

Değer türleri belleğin stack isimli bölgesinde doğrudan değerin bulunması suretiyle tutulur. Referans türlerinde ise stack bölgesine verinin adresi yazılır. Verinin içeriği ise bu adreste tutulmaktadır.

Değer türleri int, double, bool gibi az yer kaplayan türlerdir. Ancak struct olarak birden fazla türün birleşimi türünde de tanımlanıp kullanılabilir. Referans türleri ise class yani sınıf olarak tanımlanmıştır. Daha karmaşık veri türlerinin kullanımı için daha uygundur. Örneğin bir çalışanın kaydını tutmak için ismi, soyismi, maaşı, işe giriş tarihi gibi değer türündeki veriler bir araya getirilip class içerisinde tanımlanır ve referans türü oluşturulur. Eğer struct içerisinde tanımlanırsa değer türü oluşturulmuş olur.

Değer türlerinin belleğe doğrudan değer olarak yazılması ile referans türlerinin adreslerinin yazılması arasındaki en önemli fark, bir değer değişkeni diğerine eşitlenirse sadece aynı değere sahip olur. Ancak referans verisi diğerine eşitlenirse tamamen aynı olurlar. Yani biri üzerinde değişiklik olursa diğerinde de aynı değişiklik görülür. Çünkü bellek üzerinde aynı adrese tanımlıdırlar.

Değer Türleri

int değer türü

Sayısal bir değer türüdür. Bellekte 4 byte yer kaplamaktadır. -2147483648 ile 2147483647 arasında tam sayı değerlerini alabilir. Yani aslında toplamda 232 değişik değer almaktadır. Sebebi ise 4 byte büyüklüğünün 32 bit büyüklüğe eşit olmasıdır. Bilindiği üzere her bit 0 veya 1 değeri almaktadır. Aşağıdaki biçimlerde tanımlanabilmektedir.

            
int sayi1 = 10;
Int32 sayi2 = -22;
        

int değer türü işaretli bir sayısal değer türüdür. Yani pozitif ve negatif değerler alabilmektedir. Ancak sadece tamsayı değerleri alır.

uint değer türü

int değer türü işaretli bir sayısal değer türüdür. Bu değer türünü işaretsiz, yani sadece pozitif değerler alan hale getirmek için aşağıdaki şekillerde tanımlayabilirsiniz. 0 ile 4294967295 arasındaki tamsayı değerlerini alabilir.

            
uint sayi1 = 0;
UInt32 sayi2 = 109;
        

short değer türü

Sayısal bir değer türü olup bellekte 2 byte yer kaplar. Negatif ve pozitif değerleri alabilir. -32768 ile 32767 arası tam sayı değerlerini almaktadır. Aşağıdaki şekillerde tanımlanabilir.

            
short sayi1 = 4;
Int16 sayi2 = -2;
        

Bellekte daha az yer tuttuğu için işlem yaparken de daha kısa sürede işlem tamamlanır. Elbette bu fark bir veya iki değişken için farkedilemez. Ancak milyonlarca elemanı olan bir dizi içerisinde toplu işlemlerde performans farkedilebilir seviyededir. Değerlerin en fazla 20 veya 30 bin olacağı kesinse int yerine short kullanmak daha mantıklı olacaktır.

ushort değer türü

short değer türünün işaretsizidir. Yani sadece pozitif değerler almaktadır. 0 ile 65535 arasındaki değerler için kullanılabilir. Tanımlanma şekli aşağıdaki gibidir.

            
ushort sayi1 = 32;
UInt16 sayi2 = 122;
        

long değer türü

Sayısal bir değer türü olup pozitif ve negatif değerler alabilir. Bellekte 8 byte yer kaplar. int değerinin alamayacağı büyüklükte sayıları tutmak için kullanılır. -9223372036854775808 ile 9223372036854775807 arasındaki değerleri alabilir. Aşağıdaki şekillerde tanımlanır.

            
long sayi1 = 14L;
Int64 sayi2 = -109L;
        

ulong değer türü

long değer türünün işaretsizidir. Sadece pozitif değerler alır. 0 ile 18446744073709551615 arası tam sayı değerlerini almaktadır. Aşağıdaki şekillerde tanımlanır.

            
ulong sayi1 = 100L;
UInt64 sayi2 = 121L;
        

byte değer türü

Bellekte sadece 1 byte yer kaplar. short,int ve long aksine işaretsizdir. Yani 0 ile 255 arasındaki değerleri alabilir. Aşağıdaki gibi tanımlanır.

            
byte sayi1 = 9;
        

sbyte değer türü

byte değer türünün işaretlisidir. -128 ile 127 arasındaki değerleri alabilmektedir. Aşağıdaki gibi tanımlanır.

            
sbyte sayi1 = -1;
        

float değer türü

Ondalık sayıları kullanabileceğiniz değer türüdür. ±1.5x10-45 ve ±1.5x1038 arası değerler alabilmektedir. Bellekte 4 byte yer tutar. Aşağıdaki gibi tanımlanır.

            
float sayi1 = 55.678f;
Single sayi2 = -0.102f;
        

double değer türü

Ondalık sayıları kullanabileceğiniz daha büyük bir değer türüdür. Bellekte 8 byte yer tutar. Aşağıdaki gibi tanımlanır.

            
double sayi1 = 4.05;
Double sayi2 = -3.14;
        

decimal değer türü

Bellekte 16 byte yer tutan ondalık sayı değişkenidir. Aşağıdaki gibi tanımlanır.

            
decimal sayi1 = 9.912M;
Decimal sayi2 = -1023.083M;
        

char değer türü

Metinsel bir değer tipidir. Tek bir yazı karakteri değerlerini almaktadır. Aşağıdaki gibi tanımlanır.

            
char karakter1 = 'a';
Char karakter2 = '-';
        

string değer türü

İçerisinde metin değerlerini tutan veri tipidir. Sınırları belli olmadığı için referans türü bir değişken tipidir. Aşağıdaki gibi tanımlanır.

            
string metin1 = "Örnek metin değeri";
String metin2 = "Çok satırlı\n metin değeri";
        

bool değer türü

Mantıksal bir değer tipidir. true veya false değerlerini alır. Aşağıdaki gibi tanımlanır.

            
bool kosul1 = true;
Boolean kosul2 = sayi1 > 3;
        

bool veri türü if ve while gibi içerisinde koşul belirtilen işlemlerin içerisinde kullanılabilmektedir. Mantıksal sonuçları bellekte tutup onlara göre işlem yapmak için kullanılan bir değer türüdür.

object değer türü

Bütün veri tiplerinin kendisinden türediği veri türü object veri türüdür. Her türlü veri tipi (değer veya referans) farketmeksizin object türü bir veriye atanabilir. Aşağıdaki gibi tanımlanır.

            
object metin1 = "Metin atanabilir";
Object metin2 = 14; // veya sayı atanabilir
        
İlişkili İçerikler

C# dünyasında .NET Framework veya .NET Core teknolojileri ile dilediğiniz türde konsol, windows veya web uygulamaları geliştirebilirsiniz. Xamarin ile mobile uygulamalar geliştirebilmeniz de mümkün.

C# ile metin değerleri (string) üzerinde yapılabilecek çeşitli işlemleri inceleyebileceğiniz bu yazı metin tabanlı uygulamalar geliştirmek için son derece faydalı olacaktır.

Tarih ve saat bilgilerini tutan veri tipi DateTime ile ilgili metotlar ve uygulamaları inceleyebilirsiniz.

Paylaşın
Etiket Bulutu