Почему значение int дает мне ошибку при его изменении?

Я новичок в C#, и я пытаюсь понять функцию таймера.. Я сделал метку, текстовое поле и кнопку также добавил таймер конечно.

У меня int установлен на 1000 = 1 секунду.

Я хотел бы иметь возможность ввести значение в текстовое поле, т. Е. 5, а затем таймер использует его в качестве своего интервала между каждым тиком.

По какой-то причине говорится: "Не удается неявно преобразовать тип" строка в int"

И я понятия не имею, как преобразовать строку в Int..

Есть примеры? Поможет мне так много!

namespace Clicker
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int count = 0;
        int interval = 1000;


        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
            interval = textBox1.Text;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            count++;
            label1.Text = count.ToString();

        }
    }
}

3 ответа

 interval = textBox1.Text;

интервал - это целое число, а textBox1.Text - это строка. Вы должны проанализировать значение как:

interval = int.Parse(textBox1.Text)

или лучше используйте int.TryParse!

также вы можете найти это здесь: String to Integer

Ошибка не требует пояснений. Вы пытаетесь назначить string для int, В частности, по этой строке:

interval = textBox1.Text;

Вам нужно использовать Int32.Parse() метод для преобразования string данные:

interval = Int32.Parse(textBox1.Text) * 1000;

Тем не менее, вы на самом деле не используете свой interval переменная для всего. Вам нужно назначить таймер Interval Свойство перед запуском таймера:

interval = Int32.Parse(textBox1.Text) * 1000;
timer1.Interval = interval;
timer1.Start();

interval имеет тип int, Недвижимость Text на TextBox контроль является string,

Вам нужно преобразовать / разобрать значение в int использовать его, например:

int userInput = 0;

if(Int32.TryParse(textBox1.Text, out userInput))
{
    interval = userInput;
}
else
{
    // Input couldn't be converted to an int, throw an error etc...
}
Другие вопросы по тегам