Tür dönüştürme, bir veri türünü başka bir türe dönüştürmektir. C#’da tür dönüşümü kapalı ve açık olarak iki şekli mevcuttur.
Kapalı tür dönüşümü
Kapalı tür dönüşümü, derleyici tarafından otomatik olarak yapılır. Gizli dönüşüm için, el ile hiçbir şey yapmak zorunda değiliz. Kapalı dönüşüm sırasında, bilgi kaybı olmaz ve dönüştürme tamamlandığında taşma istisnası atma olasılığı yoktur.
Burada dikkat edilmesi gereken nokta şudur.Bellek alanı küçük türlerin daha büyük türlere dönüştürüldüğüdür.
1 2 3 4 5 6 7 8 9 |
class Program { static void Main(string[] args) { int i = 100; float f = i; // int türünü float türüne dönüştürdük Console.WriteLine("Dönüştürülen Sayı :{0}", f); } } |
Açık tip dönüşüm
Açık dönüşüm, bir veri türünden başka bir veri türüne manuel olarak dönüştürmemiz gereken dönüşümdür. Derleyici bizim için dönüşüm yapmaz.
Örneğin, bir float veri türünü int veri türüne dönüştürdüğümüzde, kesirli kısmı (bilgi kaybı) kaybeder ve ayrıca bir taşma istisnası atma olasılığı vardır.
Derleyicinin bizim için dönüşüm yapmamasının ana sebebi budur ve dönüşümü açıkça yapmak zorundayız.
Bir veri türünü başka bir veri türüne açıkça dönüştürebilmemizin 2 yolu vardır.
- Tür Cast Operatörleri
- Convert Sınıfı Metotları
Tür Dönüşüm Operatörleri
Tip Cast operatörü, bir veri türünü başka bir veri türüne açıkça dönüştürmek için kullanılabilir. Bir veri türünü bir veri türünü başka bir veri türüne dönüştürmek için bir tip dönüşüm operatörü kullandığımızda, dönüşüm için kullanılan sayı beklenen aralıktan daha büyükse, istisna olmaz. Sadece rastgele bir negatif değer verir.
1 2 3 4 5 6 |
double d = 74.74; int i; // double türünü int türüne dönüştürme i = (int)d; |
Çıktı: 74
Convert Sınıfı
Convert class ayrıca bir veri türünü başka bir veri türüne açıkça dönüştürmek için de kullanılabilir. Bir veri türünü başka bir veri türüne dönüştürmek için bir Convert sınıfı kullandığımızda, dönüştürücü, kullanılan değer, beklenen aralığın dışındaysa, işlenmeyen bir istisna oluşturur.
1 2 3 4 5 6 7 8 9 10 11 |
class Program { static void Main(string[] args) { float d = 123.45 F; int j = (int) d; //Tür dönüşüm operatörü ile int s = Convert.ToInt32(d); //Convert Class Console.WriteLine(j); Console.WriteLine(s); } } |
C# Convert Sınıfı Metotları
Convert sınıfı aşağıdaki statik tip dönüştürme metotlarını içerir.
S | Metot ve Tanımı |
---|---|
1 | ToBoolean
Mümkün olan bir türü bolean türüne dönüştürür.. |
2 | ToByte
Bir tipi byte dönüştürür. |
3 | ToChar
Türü mümkünse tek karaktere dönüştürür. |
4 | ToDateTime
Türü tarih-zaman yapısına dönüştürür. |
5 | ToDecimal
Türü ondalıklı desimal sayı formatına dönüştürür. |
6 | ToDouble
türü ondalıklı double sayı türüne dönüştürür. |
7 | ToInt16
Türü 16 bit tam sayı formatına dönüştürür. |
8 | ToInt32
Türü 32 bit tam sayı formatına dönüştürür. |
9 | ToInt64
Tür 36 bit tam sayı formatına dönüştürür. |
10 | ToSbyte
Tür işaretli byte formatına dönüştürür. |
11 | ToSingle
Türü ondalıklı sayı formatına dönüştürür.(float) |
12 | ToString
Tür string formatına dönüştürür. |
13 | ToType
Türü istenilen tür formatına dönüştürür. |
14 | ToUInt16
Türü işaretsiz 16 bit tam sayı formatına dönüştürür. |
15 | ToUInt32
Türü işaretsiz 32 bit tam sayı formatına dönüştürür. |
16 | ToUInt64
Türü işaretsiz 34 bit tam sayı formatına dönüştürür. |
Ayrıca String formatındaki bir sayıyı 2 metot ile sayıya dönüştürebilirsiniz.
C# Parse Metodu
Parse yöntemi, dize formatındaki bir sayının bir tamsayı formatına dönüştürülmesi için kullanılabilir. Bir ayrıştırma yöntemi kullandığımızda derleyici, değeri ayrıştırılamıyorsa bir istisna atar. Örneğin, sayı herhangi bir dize değeri içeriyorsa, derleyici bir tamsayı biçimine dönüştürülürken geçersiz bir dönüşüm olacaktır, bu nedenle derleyici işlenmemiş bir istisna atar. Ayrıştırma yönteminin dönüş değeri int’dir. Ayrıştırma yöntemini yalnızca dize formatında olan bir tamsayıya dönüştürdüğümüzden% 100 emin olduğumuz durumlarda kullanabiliriz.
Örnek:
1 2 3 4 5 6 7 8 |
int s1= int.Parse( Console.ReadLine( ) ); long s2 = long.Parse(Console.ReadLine( ) ); short s2= short.Parse( Console.ReadLine( ) ); float sayi = float.Parse( Console.ReadLine( ) ); string x = "100"; int y = int.Parse(x); |
C# TryParse Metodu
Parse yöntemini, dize biçimindeki bir sayının bir tamsayı biçimine dönüştürülmesi için de kullanabilirsiniz. Try Parse yönteminin dönüş türü bir Boolean değeridir. Derleyici, değeri ayrıştıramazsa bir istisna alamaz. Değeri ayrıştırmaya çalışır – eğer başarılı olursa TRUE, aksi halde bir False değerini döndürür. Parse ve Try Parse metodu arasındaki temel farklardan biridir.
Örnek:
1 2 3 4 5 |
string strVal = "100"; int intVal = 0; bool durum = int.TryParse(strVal, out intVal); |
toString() metodu:
Bu yöntemle sadece string tipine dönüşüm yapılabilir.
1 2 3 4 5 |
int a = 12540; strint b = a.ToString(); |
[…] Tür Dönüşümleri […]