| Parse() metodu string bilgiler sayısal bilgiye dönüştürülmek istendiğinde kullanılmaktadır. |
Değişik türdeki bilgiler Convert sınıfının ilgili metotları ile
String”e çevrilirken istenildiği gibi biçimlendirilmektedir. Bazen bu
işlemin tersine gerek duyulur. Örneğin bir TextBox”a yazıp
biçimlendirdiğiniz string bilgiyi sayısal bilgiye dönüştürmek
isteyebilirsiniz. Bu dönüştürme işlemini .NET Framework ile gelen
Int16, Int32, Boolean vb. gibi sınıfların Parse() metotlarından
yararlanarak yapabilirsiniz. Parse() metodunun en basit şekli ile nasıl
kullanıldığını aşağıda görebilirsiniz.
int Sayi;
string Str;
Str = “123″;
Sayi = System.Int16.Parse(Str);
Bu kodda önce Integer ve String 2 değişken tanımladım ve String
değişkene yalnızca rakamlardan meydana gelen bilgi aktardım. Ardından
bu String değişkeni Int16 sınıfının Parse() metoduna parametre olarak
verip Integer değişkene aktardım.
String bilgide küçük bir değer saklandığı için Int16 sınıfının Parse()
metodunu kullandım. String bilgide büyükçe bir sayı saklanıyor olsaydı
bu kez Int32 sınıfının Parse() metodunu kullanmam gerekirdi. String
bilgileri Parse() metodu ile dönüştürürken sayısal bilginin tipine ve
büyüklüğüne göre sınıf seçimini yapmalısınız. Örneğin String değişkende
kesirli sayı olarak değerlendirilecek bilgi varken Int16 veya Int32
sınıflarının Parse() metodu ile dönüştürme yaparsanız hata meydana
gelir. Aşağıda verilen kod işletildiğinde String değişkenin içeriği
Parse() metodu ile Single bilgiye dönüştürülür.
Single Sayi;
string Str;
Str = “123,456″;
Sayi = System.Single.Parse(Str);
textBox1.Text = Convert.ToString(Sayi);
Single sınıfının Parse() metodu kendisine parametre olarak verilen
String bilgiyi kayıpsız olarak Single tipine dönüştürür. Şimdi ise üçer
hanelere ayrılmış tamsayı şeklinde düzenlenmiş bilgi içeren String
değişkenin içeriğini Parse metodu ile Long değişkene aktaracağım.
long Sayi;
string Str = “1.234.567″;
Sayi = System.Int32.Parse(Str);
İlk bakışta Parse() metodunun dönüştürmeyi başarılı bir şekilde
yapacağı beklenir. Ancak bu şekilde üçer hane ayırıcı olarak
kullanılabilecek karakter içeren bilgiyi Parse() metodu ile dönüştürmek
istiyorsanız Parse() metodunun 2. parametresinde bunu belirtmeniz
gerekir.
long Sayi;
string Str = “1.234.567″;
Sayi = System.Int32.Parse(Str, System.Globalization.NumberStyles.AllowThousands);
Bu
örneği denediğimde kullandığım bilgisayarda ondalık ayırıcı karakter
olarak virgül(,), binlik basamak ayırıcı karakter olarak nokta(.)
geçerliydi. Bu şartlarda Parse() metodu aşağıdaki gibi kullanılırsa
hata meydana gelir.
long Sayi;
string Str = “1,234,567″;
Sayi = System.Int32.Parse(Str, System.Globalization.NumberStyles.Any);
textBox1.Text = Convert.ToString(Sayi);
Bu sırada kullandığım bilgisayarda üçer hane ayırıcı karakter olarak
virgül(,) geçerli olsaydı hata meydana gelmezdi. Bu gibi durumlarda
Parse() metodunun 3. parametresi ile bölgesel ayar seçimini
yapabilirsiniz.
long Sayi;
string Str = “1,234,567″;
System.Globalization.CultureInfo ulke;
ulke = new System.Globalization.CultureInfo(”en-US”);
Sayi = System.Int32.Parse(Str, System.Globalization.NumberStyles.Any, ulke);
textBox1.Text = Convert.ToString(Sayi);
Parse() metoduna 3. parametre olarak vermek üzere
System.Globalization.CultureInfo tipinde bir değişken tanımladım.
Parametre olarak �en-US� kullandığım için Parse() metoduna 1. parametre
olarak verdiğim bilgi hatasızca Long tipine dönüştürüldü. Şimdi ise
örnek olması için 16 tabanlı bir sayıya çevrilebilecek string bilgiyi
Parse() metoduna parametre olarak vereceğim. Bu amaçla hazırladığım
örneği aşağıda görebilirsiniz.
long Sayi;
string Str = “FFFF”;
Sayi = System.Int32.Parse(Str, System.Globalization.NumberStyles.HexNumber);
textBox1.Text = Convert.ToString(Sayi); // TextBox”a 65535 yazılır.
Parse sınıfının ToString() metodu ile kolayca 10 tabanlı sayıları 16
tabanlı olarak String bilgiye dönüştürülebilir. Bu işlemin nasıl
yapıldığını aşağıda görebilirsiniz.
int sayi=255;
string str;
str = Convert.ToString(sayi, 16);
textBox1.Text = str;