3 - C# Veri Tipleri

MerryGo

Yeni üye
19 May 2021
48
15
csharp-1200x600.png

Veri Tipleri

İki farklı değişken türü mevcuttur, bunlar Değer türü ve Referans türü olarak adlandırılır. Değer tipi değişkenler stack adı verilen bölümlerde saklanır, Referans türü değişkenler ise heap adı verilen bölümlerde saklanır. Değer türü veriler taşıdıkları veri türüne göre bellek üzerinde yer kaplayan değişkenlerdir. Erişimi çok hızlıdır ve bellekte kapladığı yer azdır. Stack içerisine saklanacak verini boyutu bilinmelidir. Heap içerisine saklanan verinin ise boyutu dinamik olarak belirlenir ve çalışma zamanında kullanımına göre değişkenlik gösterir. Stack bölgesindeki verinin kullanımı bittikten sonra otomatik olarak silinir. Heap gölgesindeki veriler ise kullanımı bittikten sonra garbage collector yardımı ile veriyi bellekten siler. Stack veri bölümlerindeki işlemler heap veri bölümündeki işlemlere göre daha hızlı gerçekleşir. Referans türü değişkenleri veriyi heap içerisinde ve bu değişkene ulaşmak için gereken referans veri adresi ise stack bölümünde saklanır.

Referans türü örnek:
C#:
string degiskenAdi = "Merhaba";
Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-08-01%2B144748.png


Değer türü örnek:
C#:
int a = 13;
Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-08-01%2B144947.png



Değer Tipleri
Değer tipleri aşağıda bulunan tablodaki gibidir.
Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-08-01%2B145112.png




Referans Tipleri

Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-08-01%2B145526.png


Veri tiplerinin kısaca özellikleri şunlardır:

Integer Veri Tipi
+2147483647 ile -21474836478 sayıları arasında değer alır.
32 bit yer kaplar
C#:
int number1 = 2147483647;

Long Veri Tipi
10²⁰ ile -10²⁰ sayıları arasında değer alır.
64 bit yer kaplar.
C#:
long number2 = 9223372036854775808;

Short Veri Tipi
+32767 ile -32768 sayıları arası değer alır.
16 bit yer kaplar.
C#:
short number3 = 32767;

Byte Veri Tipi
0 ile 255 sayıları arasında değer alır.
8 bit yer kaplar.
C#:
byter number4 = 255;

Bool Veri Tipi
"true" ile "false" yani 0 ile 1 değerlerini alır.
1 bit yer kaplar.
C#:
bool condition = 1;

Char Veri Tipi
Bu veri tipi "unicode" karakterleri değer olarak alır.
16 bit yer kaplar.
Char veri tipini tanımlarken daima ' ' kullanmalıyız.
C#:
char character = 'A';

Double Veri Tipi
Float veri tipinden daha büyük veya daha küçük sayılarla çalışmamızı sağlar.
Ondalık ve tam sayılarla çalışmamızı sağlar.
64 bit yer kaplar.
C#:
double number = -123.12312;

Float Veri Tipi
-3.402823e38 - 3.402823e38 aralığında değer alır.
32 bit yer kaplar.
Float veri tipini tanımlarken sayının sonuna F yada f karakteri getirilir.
C#:
float number = 5.2f;

Object
Object değişken türü ile bütün verli tanımlanabilir.
C#:
object isim = "Ali";
object yas = 12;
object karakter = 'F'

Decimal Veri Tipi
Float veri tipi virgülden sonra 6, double veri tipi virgülden sonra 15, decimal veri tipi ise virgülden sonra 28 karakteri tam sayı olarak saklar.
128 bit yer kaplar.
C#:
 decimal number6 = -323.112312312312312m;

Var Keyword
Kullanımı object türüne benzer.
Bir değişkene var ile bir veri tipi tanımlarsak, o değişkenin veri tipi otomatik olarak aldığı değerin veri tipi olur.
Var ile tanımladığımız değişkenlere ilk değer ataması zorunludur.

Örnek:
C#:
var number1 = 11;
Console.Write(number1);
Console.ReadLine();

Çıktı:
11

Digit Seperator
Digit seperator rakamları basamaklarına ayırarak daha rahat kullanmamıza olanak sağlayan bir özelliktir.
Örnek:
C#:
int c = 0b0001_1100_1111_1101;
Bu c değeri ekrana 7421 değerini döndürecektir. Gördüğünüz gibi rakamları daha rahat ayır edebiliyoruz.
int b = 12_123_123; aynısı bu örnek içinde geçerlidir.

Global Ve Local Değişkenler
Değişkenler tanımlandıkları yere göre 2'ye ayrılır. Bunlar local değişlenler ve global değişkenlerdir.
Lokal değişkenler bir kod bloğunun veya metodun içine tanımlanır ve sadece tanımlandığı yerde kullanılabilir.

Örnek:
C#:
static void Main(string[] args)
{
        {
                  static void Main(string[] args)
        {
          Console.WriteLine(a);
          Console.ReadLine();
}

a'yı konsola yazdırmaya çalıştığımız hata alacağız çünkü a sadece kod bloğunun içinde tanımlıdır.
Onun yerine kodu böyle düzenlersek sorunsuz çalışacaktır.
C#:
static void Main(string[] args)
{
        {
                  int a = 33;
                  Console.WriteLine(a);
        {
          Console.ReadLine();
}

Global değişkenler ise tanımlandıkları yere göre bir kod bloğunun, metodun ya da sınıfın tamamında geçerlidir.

Örnek:
C#:
class Program
{
          public static int k;
          static void Main(string[] args)
        {
                  {
                          k = 21;
                  }
                  Console.WriteLine(k);
                  Console.ReadLine();
        }
}

Çıktı:
21

Gördüğünüz gibi globalde tanımlanan değişkenler kendi ve alt kod bloklarında sorunsuz bir şekilde kullanılabiliyor.

Not: Globalde tanımladığımız k değişkenine main metonu içerisinde herhangi bir değer atamazsak k değişkeni varsayılan değerini alacaktır ve program herhangi bir hata vermeyecektir, ama k değişkenini main metodu içinde int k; şeklinde tanımlayıp başlangıç değeri vermeyip, metot içerisinde herhangi bir değer atamazsak k değeri herhangi bir varsayılan değer almaz ve program hata verir.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.