использование ошибки неназначенной переменной

Я делаю программу для добавления номеров списка, разделенных запятой (,) в текстовом поле. пример: 1,12,5,23 в моей сумме += число; я продолжаю использовать неназначенную локальную переменную с итогом;

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 button1_Click(object sender, EventArgs e)
    {
        string str = textBox1.Text;
        char[] delim = { ',' };
        int total;
        int num;
        string[] tokens = str.Split(delim);

        foreach (string s in tokens)
        {

           num = Convert.ToInt32(s);
           total += num;

        }
        totallabel.Text = total.ToString();


    }
   }
 }

person Aaron Doucet    schedule 27.07.2012    source источник


Ответы (3)


Вам нужно изменить

int total;

to

int total = 0;

Причина этого в том, что если вы внимательно посмотрите на

total += num;

Это также может быть записано как

total = total + num;

В котором общая сумма не будет назначена для первого использования.

person Adriaan Stander    schedule 27.07.2012
comment
Я не могу поверить, что пропустил это, спасибо. вот почему я не делаю hw, когда я устал. - person Aaron Doucet; 27.07.2012

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

int total = 0;
person Tom    schedule 27.07.2012

Другие ответы верны, но я предложу альтернативный FWIW, который не требует инициализации переменной, поскольку она назначается только один раз. :)

var total = textBox1.Text
    .Split(',')
    .Select(n => Convert.ToInt32(n))
    .Sum();
person James Manning    schedule 27.07.2012