String'i Int'e nasıl dönüştürebilirim?

Elimde bir TextBoxD1.Text var ve bunu bir veritabanında saklamak için bir intye dönüştürmek istiyorum.

Bunu nasıl yapabilirim?

Çözüm

Bunu dene:

int x = Int32.Parse(TextBoxD1.Text);

ya da daha iyisi:

int x = 0;

Int32.TryParse(TextBoxD1.Text, out x);

Ayrıca, Int32.TryParse bir bool döndürdüğünden, ayrıştırma girişiminin sonuçları hakkında karar vermek için dönüş değerini kullanabilirsiniz:

int x = 0;

if (Int32.TryParse(TextBoxD1.Text, out x))
{
    // you know that the parsing attempt
    // was successful
}

Eğer merak ediyorsanız, Parse ve TryParse arasındaki fark en iyi bu şekilde özetlenebilir:

TryParse yöntemi, Parse yöntemi gibidir yöntemi, TryParse yöntemi hariç ise bir istisna atmaz. dönüşüm başarısız. Bu ortadan kaldırır test etmek için istisna işleme kullanmanız gerekir olayında bir FormatException için bu s geçersizdir ve olamaz başarıyla ayrıştırıldı. - MSDN

Yorumlar (8)
Convert.ToInt32( TextBoxD1.Text );

Metin kutusunun içeriğinin geçerli bir int olduğundan eminseniz bunu kullanın. Daha güvenli bir seçenek

int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );

Bu size kullanabileceğiniz bazı varsayılan değerler sağlayacaktır. Int32.TryParse ayrıca ayrıştırma yapıp yapamadığını gösteren bir boolean değeri döndürür, böylece bunu bir if deyiminin koşulu olarak bile kullanabilirsiniz.

if( Int32.TryParse( TextBoxD1.Text, out val ){
  DoSomething(..);
} else {
  HandleBadInput(..);
}
Yorumlar (2)
int.TryParse()

Metin sayısal değilse atmaz.

Yorumlar (2)