7/11/2005

Data Type'larini Donusturmek(Implicit vs Explicit Conversion)

Hem VB.Net hem C# olsun, .Net ile gelen 2 dilde de daha küçük içeriğe sahip bir degiskeni daha büyük içeriği olan bir veri tipine dönüşümlerde ekstra kod yazılmasına gerek kalmadan veri otomatik olarak .Net Framework tarafından istenilen yeni veri tipine çevrilir. (Ör: short int'ten long int'e çevirmek.)

Diğer yandan herhangi bir degiskeni büyük içeriğe sahip bir veri tipinden küçük içeriğe sahip bir veri tipine dönüştürmek istediğiniz zaman, olası veri kaybına sebep olunabileceğinden kodunuz içerisinde bir çeviri yapmak istediğinizi belirtmek zorundasınız, yoksa compiler hata verecektir. (Ör: long int'ten short int'e çevirmek.)

VB:
Dim i As Int16
Dim j As Int32
j = 7
i = CType(j, Int16)

C#:
Int16 i;
Int32 j;
j = 7;
i = (Int16)j;

Bir diğer yandan herhangi birbiriyle alakasız 2 veri tipini birbirine dönüştürürken de aynı şekilde kodunuz içerisinde açık olarak neyi neye çevirmek istediğinizi belirtmek zorundasınız.

VB.Net:
Dim x As Int32
txtUserName.Text = x.ToString

C#:
int x = 7;
txtUserName.Text = x.ToString();

VB.Net default olarak sizin için bütün veri tipleri çevrimlerini otomatik olarak gerçekleştirmeye çalışacaktir. Ancak her zaman için kodunuz içinde kendiniz belirtmeniz, ilerde doğabilecek hataları önlemenize faydalı olacaktir.

Eğer VB.Net in bu veri tiplerini otomatik çevirme özelliğini kapatmak isterseniz VB kod sayfalarınızın en üstüne;
Option Strict On
kodunu girebilirsiniz. Aynı şekilde eğer tüm projeniz için Option Strict özelliğini aktif hale getirmek isterseniz Project Properties Menüsunden Build kısmına giderek Option Strict özelliğini On yapabilir ve tek tek dosyalar için bu özelliği açıp kapamaktan kurtulup zaman kazanabilirsiniz.