C#’ta yeni bir değişken bildirdiğinizde, onu genellikle belirli bir veri türüyle başlatırsınız. Bu bir tamsayı, ondalık sayı, boole, dize veya başka bir veri türü olabilir.

C#'ta Farklı Veri Türlerini Dönüştürme ve Ayrıştırma

Bir değeri bir veri türünden diğerine dönüştürebilirsiniz. Örneğin, bir dizgiyi bir tamsayıya dönüştürüyorsanız, önce değeri ayrıştırmanız gerekir. Değerleri dönüştürmenin ve ayrıştırmanın birkaç farklı yolu.

Neden Verileri Dönüştürmeniz veya Ayrıştırmanız Gerekiyor?

Bir C# konsol uygulamasında kullanıcı girişi talep ediyor olmanız, verileri ayrıştırmanız gerekebilecek durumlara bir örnektir:

Console.WriteLine(“Enter your age:”);

string salary = Console.ReadLine();

Bu durumda, kullanıcı bir tamsayı değeri girecek, ancak uygulama bunu varsayılan olarak bir dize olarak saklayacaktır. Dize değerini herhangi bir hesaplamada kullanmayı denerseniz, bir derleme hatası alırsınız:

Dize çift işlenen derleme hatası

Veri türlerini dönüştürmenin bir başka nedeni de, yalnızca belirli bir veri türü için kullanılabilen belirli yöntemlere erişmektir. Örneğin, DateTime yapısı, dakika eklemenizi sağlayan bir işlev içerir. Bunun yerine bir dize kullanıyor olsaydınız, yönteme erişiminiz olmazdı:

DateTime AddMinutes işlevi derleme hatası

C#’ta oluşturulan bir sınıfın veri türü yapısını veya C#’ta bir yapıyı izlemeniz gerekiyorsa, bir değeri başka bir veri türüne dönüştürmek de isteyebilirsiniz .

Farklı Veri Türlerini Dönüştürme ve Ayrıştırma

Tamsayılar, çiftler, boole türleri ve tarih saat türleri gibi farklı veri türlerini ayrıştırabilirsiniz.

Tamsayılara Dizeler

Bir dizeyi tamsayıya dönüştürmek için Parse() yöntemini kullanın:

string strInt = “45”;

int int32 = Int32.Parse(strInt);

Console.WriteLine(int32); // output: 45

Dizeyi Int16, Int32 veya Int64 gibi farklı bit boyutlarına sahip tamsayılara da ayrıştırabilirsiniz.

int int16 = Int16.Parse(strInt);

Console.WriteLine(int16); // output: 45

Parse() yöntemini kullanıyorsanız, dize değerinin bir tam sayıyı temsil ettiğinden emin olun. “Merhaba” gibi tamsayı olmayan bir değeri ayrıştırmaya çalışırsanız, çalışma zamanında bir ayrıştırma hatası alırsınız.

string invalidString = “Hello”;

int invalidResult = Int32.Parse(invalidString);

Geçersiz Int Dize Çalışma Zamanı Hatası

Ayrıştırma sırasında oluşabilecek istisnaları yakalamak için TryParse() yöntemini de kullanabilirsiniz:

int tryParseResult = 0;

if (Int32.TryParse(invalidString, out tryParseResult))

{

Console.WriteLine(tryParseResult);

}

else

{

Console.WriteLine(“Something went wrong”);

}

Bir tamsayıyı tekrar dizgeye dönüştürmek için ToString() yöntemini kullanın:

string intString = 45.ToString();

Console.WriteLine(intString); // output: 45

Çiftlere Dizeler

Bir dizgiyi double’a ayrıştırmak, bir’i bir tamsayıya ayrıştırmaya çok benzer. Double sınıfından Parse() yöntemini kullanın:

string strDouble = “90.5”;

double d = Double.Parse(strDouble);

Console.WriteLine(d); // output: 90.5

Tamsayılarda olduğu gibi, oluşabilecek ayrıştırma hatalarını yakalamak için TryParse() yöntemini de kullanabilirsiniz:

string invalidStringDouble = “Hello”;

double tryParseDouble = 0;

if (Double.TryParse(invalidStringDouble, out tryParseDouble))

{

Console.WriteLine(tryParseDouble);

}

Bir double’ı tamsayıya dönüştürmek için ToString() yöntemini kullanın:

double dDouble = 90.5;

string dString = dDouble.ToString();

Console.WriteLine(dString); // output: 90.5

Tamsayılara Çiftler

Bir çifti bir tamsayıya dönüştürmek için atamayı kullanabilirsiniz. Bir tamsayı yalnızca bir tam sayı sakladığından, dönüştürme ondalık basamakları kaldıracaktır. Örneğin, “12.34” dönüştürülürse yalnızca “12” değeri depolanır.

double dValue = 12.34;

int iValue = (int)dValue;

Console.WriteLine(iValue); // output: 12

Ayrıca bir tamsayıyı bir çifte dönüştürebilirsiniz:

dValue = (double)iValue;

Console.WriteLine(dValue); // output: 12

Dizeler ve Boole Değerleri

Bir dizeyi bir boole dönüştürmek için Parse() veya ToBoolean() yöntemini kullanın:

string stringBool = “True”;

bool b = bool.Parse(stringBool);

// or

b = Convert.ToBoolean(stringBool);

Console.WriteLine(b); // output: true

Bir boole değerini tekrar dizgeye dönüştürmek için ToString() yöntemini kullanın:

string strTrue = true.ToString();

string strFalse = false.ToString();

Tamsayılar ve Boole Değerleri

Bir tamsayıyı bir boole dönüştürmek için, “1” veya “0”ı eşdeğer boole değerine dönüştürmek için ToBoolean() yöntemini kullanın. “1” değeri “true” değerine, “0” değeri ise “false” değerine dönüşür:

int falseBit = 0;

int trueBit = 1;

Console.WriteLine(Convert.ToBoolean(falseBit)); // output: false

Console.WriteLine(Convert.ToBoolean(trueBit)); // output: true

ToBoolean() yöntemine “1” veya “0” dışında bir tamsayı değeri de iletebilirsiniz. Varsayılan olarak, yöntem yine de “true” değerini döndürür:

int invalidBit = 8;

Console.WriteLine(Convert.ToBoolean(invalidBit)); // output: true

Bir boole değerini tekrar tamsayıya dönüştürmek için Convert.ToInt32() yöntemini kullanın. “true” dönüştürmek “1” döndürür ve “false” dönüştürmek “0” döndürür.

bool iBool = true;

int bInt = Convert.ToInt32(iBool);

Console.WriteLine(bInt); // output: 1

DateTime için dizeler

Bir dizeyi tarih saat biçimine ayrıştırmak için DateTime.Parse() yöntemini kullanın:

DateTime newDateTime = DateTime.Parse(“01/01/2018 00:00:00”);

Console.WriteLine(newDateTime); // output: 01/01/2018 00:00:00

Bir tarih saatini tekrar dizgeye dönüştürmek için ToString() yöntemini kullanın:

DateTime dt = new DateTime(2018, 1, 1);

string dtString = dt.ToString();

Console.WriteLine(dtString); // output: 01/01/2018 00:00:00

Değerleri Farklı Veri Türlerine Ayrıştırma

Artık değerleri bir veri türünden diğerine nasıl dönüştüreceğinizi anlıyorsunuz. Bunlar sadece dönüşümler değil, bu nedenle C#’daki diğer veri türleri hakkında daha fazla bilgi edinmekten çekinmeyin.

JavaScript gibi diğer veri türlerinin diğer dillerde nasıl çalıştığını da keşfedebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir