Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.
0

C# metni tamsayıya çevirmede hata.

Yaptığım bir oyunda tamsayıyı stringe çevirme hatası alıyorum ve bunu düzeltemiyorum.

Yeni C# öğrencisi olarak sizden yardım bekliyorum.

Projem bir toplama oyunudur. Rastgele sayılar verilecek, cevap doğru olursa tebrikler doğru mesajı görüntülencek.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    
    public Form1()
    {
        InitializeComponent();
    }
    
    private void Form1_Load(object sender, EventArgs e)
    {
        int sayi1, sayi2;
    
    private void button1_Click(object sender, EventArgs e)
    {
    int toplam = sayi1 + sayi2;
    
    int tahmin = int.Parse(textBox1.Text);
    
    if (tahmin == toplam)
       label5.Text = "Tebrikler, Sonuç Doğru..";
    else
       label5.Text = "Hatalı Sonuç.";
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
		Random rastgeleSayi = new Random();
		sayi1 = rastgeleSayi.Next(0, 100);
		sayi2 = rastgeleSayi.Next(0, 100);
		label3.Text = sayi1.ToString();
		label4.Text = sayi2.ToString();
    }
}

Soran:06.03.18 16:43
misafir  

1 Cevap

0
int.Parse  yerine int.TryParse kullanmalısın. int.Parse, metin sayıya çevrilemezse hata verir.

int.TryParse  ise değeri dönüştürüp dönüştüremediğini döndürür ve cevirdiği değeri döndürebilmek için out kullanır.

Tıklama yordamındaki ilgili kısmı aşağıdaki gibi değiştirebilirsin.

int tahmin = 0;

if (!int.TryParse(textBox1.Text, out tahmin) || tahmin <= 0)
    label5.Text = "0'dan büyük bir tamsayı girmelisiniz.";
else
{
   if (tahmin == toplam)
      label5.Text = "Tebrikler, Sonuç Doğru.";
   else
      label5.Text = "Hatalı sonuç.";
}


Cevaplayan: 06.03.18 21:16
cevapsitesi
102,035p 16ü