C#'taki Veri Türleri: Double, Tam Sayı, Kayan Nokta, Karakter

⚡ Akıllı Özet

C#'da veri tipleri, bir değişkenin tutabileceği değer türlerini tanımlar; bunlar tamsayılar, ondalık sayılar, Boolean ve metin değerleri gibi çeşitli tipleri kapsar ve program yürütülmesi sırasında her değişkenin ne kadar bellek ayıracağını belirler.

  • 🔢 Tamsayı türleri: Int32 anahtar kelimesi (int), 10, 20 veya 30 gibi tam sayıları sabit bir bellek aralığında saklar.
  • 🔣 Kayan noktalı sayı türleri: Double ve float veri tipleri ondalık değerler içerirken, decimal veri tipi finansal hesaplamalar için daha yüksek hassasiyet sunar.
  • ☑️ Mantıksal tür: Boolean anahtar kelimesi yalnızca doğru veya yanlış değerlerini saklar ve koşullu mantığı yönlendirir.
  • 🔤 Metin türleri: `char` tek bir karakteri, `string` ise karakter dizisini metin olarak saklar.
  • 🧩 Değer ve referans karşılaştırması: Değer tipleri verileri doğrudan depolarken, string gibi referans tipleri bir bellek adresini depolar.
  • 🤖 Yapay zeka yardımı: GitHub Copilot ve ML.NET, C# tür işleme süreçlerine kod önerileri ve makine öğrenimi özellikleri getiriyor.

C#'ta Veri Türleri

C#'ta Veri Türleri Nelerdir?

C# dili bir dizi Temel veri türüyle birlikte gelir. Bu veri türleri, bir uygulama içinde kullanılan değerleri oluşturmak için kullanılır. C#'ta mevcut olan temel veri türlerini inceleyelim. Her örnek için Program.cs dosyamızdaki yalnızca ana işlevi değiştireceğiz.

1) Tamsayı

Sayılarla çalışmak için Tamsayı veri türleri kullanılır. Bu durumda sayılar 10, 20 veya 30 gibi tam sayılardır. C#'ta veri türü şu şekilde gösterilir: Int32 anahtar kelimesi. Aşağıda bu veri tipinin nasıl kullanılabileceğine dair bir örnek verilmiştir. Örneğimizde num adında bir Int32 değişkeni tanımlayacağız. Daha sonra değişkene bir Tamsayı değeri atayacağız ve onu buna göre görüntüleyeceğiz.

C#'ta Tamsayı Veri Türleri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Int32 num=30;
   Console.Write(num);  
   
   Console.ReadKey();
  }
 }
}

Code Açıklama:-

  1. Int32 veri türü, num adı verilen bir Tamsayı değişkenini bildirmek için belirtilir. Daha sonra değişkene 30 değeri atanır.
  2. Son olarak, sayıyı konsolda görüntülemek için console.write işlevi kullanılır.

Yukarıdaki kod doğru bir şekilde girilir ve program başarılı bir şekilde çalıştırılırsa aşağıdaki çıktı gösterilecektir.

Çıktı:

C#'ta Tamsayı Veri Türleri

Çıktıdan, num adı verilen Tamsayı değişkeninin konsolda görüntülendiğini açıkça görebilirsiniz.

2) Double

Ondalık sayılarla çalışmak için double veri türü kullanılır. Bu durumda sayılar 10.11, 20.22 veya 30.33 gibi tam sayılardır. C# dilinde veri türü “ anahtar sözcüğüyle belirtilirDouble“. Aşağıda bu veri tipinin bir örneği verilmiştir.

Örneğimizde num adında bir double değişken tanımlayacağız. Daha sonra bir Double değişkene değer verin ve ardından buna göre görüntüleyin.

Double C#'ta Veri Türleri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   double num=30.33;
   Console.Write(num); 
   
   Console.ReadKey();
  }
 }
}

Code Açıklama:-

  1. Çift veri türü, çift bir türü bildirmek için belirtilir değişken numarayı aradı. Daha sonra değişkene 30.33 değeri atanır.
  2. Son olarak, sayıyı konsolda görüntülemek için console.write işlevi kullanılır.

Yukarıdaki kod doğru bir şekilde girilir ve program başarılı bir şekilde çalıştırılırsa aşağıdaki çıktı gösterilecektir.

Çıktı:

Double C#'ta Veri Türleri

Çıktıdan, num adlı double değişkenin konsolda görüntülendiğini açıkça görebilirsiniz

3) Boolean

Boolean veri türü Boolean değerleriyle çalışmak için kullanılır. doğru ve yanlış. C#'ta veri türü Boolean anahtar sözcüğüyle gösterilir. Aşağıda bu veri tipinin kullanılabileceği bir örnek verilmiştir.

Örneğimizde 'durum' adında bir Boolean değişkeni tanımlayacağız. Daha sonra değişkene bir boole değeri atayacağız ve onu buna göre görüntüleyeceğiz.

C#'ta Boolean Veri Türleri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
  { 
   static void Main(string[] args) 
   {
    Boolean status=true;
    Console.Write(status);
    
    Console.ReadKey();
   }
  }
}

Code Açıklama:-

  1. Boolean veri türü, 'durum' adı verilen bir Boolean değişkeni bildirmek için belirtilir. Daha sonra değişkene doğru/yanlış değeri atanır.
  2. Son olarak, Boolean değerini konsolda görüntülemek için console.write işlevi kullanılır.

Yukarıdaki kod doğru girilirse ve program başarıyla yürütülürse çıktı görüntülenecektir.

Çıktı:

C#'ta Boolean Veri Türleri

Çıktıdan, true'ya eşit olan Boolean değişkeninin konsolda görüntülendiğini açıkça görebilirsiniz.

4) Dize

String değerleriyle çalışmak için String veri türü kullanılır. C#'ta veri türü 'String' anahtar sözcüğüyle gösterilir. Aşağıda bu veri tipinin bir örneği verilmiştir.

Örneğimizde 'mesaj' adında bir String değişkeni tanımlayacağız. Daha sonra değişkene bir String değeri atayacağız ve onu buna göre görüntüleyeceğiz.

C#'ta Dize Veri Türleri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class program
 {
  static void Main(string[] args)
  {
   String message="Hello";
   Console.Write(message);
   
   Console.ReadKey();
  }
 }
}

Code Açıklama:-

  1. String veri türü, mesaj adı verilen bir dize değişkenini bildirmek için belirtilir. Daha sonra değişkene “Merhaba” değeri atanır.
  2. Son olarak, string değerini konsolda görüntülemek için console.write işlevi kullanılır.

Yukarıdaki kod doğru girilirse ve program başarıyla yürütülürse çıktı görüntülenecektir.

Çıktı:

C#'ta Dize Veri Türleri

Çıktıdan, mesaj adı verilen String değişkeninin konsolda görüntülendiğini açıkça görebilirsiniz.

C# Veri Tiplerinin Tam Listesi

Yukarıdaki dört örnek en yaygın türleri kapsar, ancak C# tam bir yerleşik değer veri türü kümesi sunar. Her tür sabit miktarda bellek ayırır ve belirli bir değer aralığını kabul eder, bu nedenle verilerinize güvenli bir şekilde uyan en küçük türü seçmek programın verimliliğini artırır.

Veri tipi Beden Menzil / Descriptiyon
bayt 1 bayt 0 için 255
kısa 2 bayt 32,768 kadar 32,767
tamsayı (Int32) 4 bayt 2,147,483,648 kadar 2,147,483,647
ve kazandırdı 8 bayt Çok büyük tam sayılar (±9.2 katrilyon)
şamandıra 4 bayt Yaklaşık 6-7 basamak hassasiyetinde ondalık sayılar
çift 8 bayt Yaklaşık 15-16 basamak hassasiyetinde ondalık sayılar
ondalık 16 bayt Para için yüksek hassasiyetli ondalık sayılar (28-29 basamaklı)
tank 2 bayt Tek bir Unicode karakteri
bool 1 bayt doğru ya da yanlış

Bu değer tiplerinin yanı sıra, dize tipi en yaygın kullanılan referans tipidir ve herhangi bir uzunluktaki karakter dizisini saklar. Uygun bir tip seçmek, taşma hatalarını ve gereksiz bellek kullanımını önler.

C#'da Değer Tipleri ve Referans Tipleri Arasındaki Fark

C# veri türlerinin her biri iki gruba ayrılır: değer türleri ve referans türleri. Bu ayrım, C#'ın verileri nasıl sakladığını ve bir değişkeni kopyaladığınızda veya bir metoda geçirdiğinizde nasıl davrandığını belirler.

  • Değer türleri: Bunlar gerçek veriyi doğrudan, genellikle yığında saklar. int, double, bool, char, enum`struct` ve `type` değer tipleridir. Bir değişkene başka bir değişken atamak, değeri kopyalar, bu nedenle iki değişken bağımsız kalır.
  • Referans türleri: Bunlar, yığın üzerindeki verilere işaret eden bir referans (bellek adresi) saklar. Dize, nesne, dizi ve sınıf örnekleri referans türleridir. Bir referans değişkenini kopyalamak yalnızca adresi kopyalar, bu nedenle her iki değişken de aynı nesneyi paylaşır.

Değer türündeki bir değişken asla null olamaz çünkü her zaman bir değer içerir; oysa başlatılmamış bir referans türü varsayılan olarak null değerine döner. Bu farkı anlamak, veri değişikliklerinin bir programda nasıl işleyeceğini tahmin etmenize yardımcı olur.

C#'da Tür Dönüştürme

C#, sıklıkla bir değeri bir veri türünden diğerine dönüştürmeye ihtiyaç duyar; örneğin, her zaman metin olan kullanıcı girdisini sayıya dönüştürmek gibi. Bu işleme tür dönüştürme denir ve üç ana şekilde gerçekleşir.

  • Örtük dönüşüm: Derleyici, int türündeki bir değeri double türündeki bir değere atamak gibi veri kaybı riski olmadığında otomatik olarak dönüştürme yapar. Özel bir sözdizimine gerek yoktur.
  • Açık dönüştürme (tür değiştirme): Hedef türü parantez içine alırsınız, örneğin (int)myDoubleTür dönüştürme işlemi veri kaybına yol açabilir; örneğin, bir double değerini int'e dönüştürmek ondalık kısmını yok eder. Bu nedenle riski bilerek kabul edersiniz.
  • Yardımcı yöntemler: Convert sınıfı (Convert.ToInt32) ve her türün Parse metodu (int.Parse) dizeleri sayılara dönüştürürken, ToString metodu değerleri tekrar okunabilir metne dönüştürür.

Doğru dönüştürmeyi seçmek, verilerin doğru kalmasını sağlar ve atama işleminin her iki tarafındaki türler eşleşmediğinde çalışma zamanı hatalarını önler.

SSS

float, double ve decimal veri tipleri ondalık sayıları saklar ancak hassasiyet ve boyut bakımından farklılık gösterirler. float yaklaşık 7 basamaklı 4 bayt, double yaklaşık 15 basamaklı 8 bayt ve decimal ise yüksek hassasiyetli finansal değerler için 16 bayt kullanır.

Aslında aralarında gerçek bir fark yok. `int`, .NET'teki `System.Int32` türünün C# dilindeki bir takma adıdır, bu nedenle `int` ve `Int32` tam olarak aynı şeye derlenir. Çoğu geliştirici kısaltma için `int` yazarken, `Int32` altta yatan çerçeve türünü açıkça belirtir.

Dize (string) bir referans türüdür, çünkü yığında tutulan karakter verilerine bir referans depolar. Ancak, bir yönden değer türü gibi davranır: dizeler değiştirilemezdir, bu nedenle her değişiklik eskiyi düzenlemek yerine yeni bir dize nesnesi oluşturur.

Null değer alabilen bir tür, int veya bool gibi bir değer türünün sonuna soru işareti eklenerek yazılan null değerini de tutmasına olanak tanır, örneğin int?. Bu, eksik bir değerin sıfır veya false'tan ayrı olarak temsil edilmesi gereken isteğe bağlı veriler ve veritabanı alanları için kullanışlıdır.

Bir `char` tam olarak bir Unicode karakteri içerir ve 'A' gibi tek tırnak kullanır. Bir `string` ise sıfır veya daha fazla karakterden oluşan bir dizi içerir ve çift tırnak kullanır. `char` bir değer türü iken, `string` bir referans türüdür.

`var` değişkenin türünü derleme zamanında çıkarır ve bu tür daha sonra tam IntelliSense desteğiyle sabitlenir. `dynamic` ise tür kontrolünü çalışma zamanına erteler, bu nedenle tür hataları yalnızca yürütme sırasında ortaya çıkar. Güvenlik için `var`, esnek ve geç bağlantılı senaryolar için ise `dynamic` kullanın.

Evet. GitHub Copilot, Visual Studio içinde tür bildirimleri, dönüşümler ve şablon kodlar önerir. Visual Studio CodeUygun bir sayısal tür önerebilir veya ayrıştırma kodu üretebilir, ancak öneriler hassasiyet veya taşma sorunlarını gözden kaçırabileceğinden çıktısını incelemelisiniz.

Evet. ML.NET, C# veri tiplerini model özelliklerine eşler; eğitim verileri için float ve double gibi sayısal tipleri, metin için ise string tiplerini kullanır. Kesin tipli veri sınıfları her sütunu tanımlar, böylece makine öğrenimi modelleri C# uygulamalarına doğal olarak entegre olur.

Bu yazıyı şu şekilde özetleyin: