2012-07-27 28 views
0

我正在制作一个程序,在文本框中添加用逗号(,)分隔的列表编号。 例如:1,12,5,23 在我的总数+ = num;我一直使用总共未使用的本地变量;获取未分配的变量错误的使用

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(); 


    } 
    } 
} 

回答

2

您需要更改

int total; 

int total = 0; 

这样做的原因是,如果你看一下

total += num; 

接近它也可以是写为

total = total + num; 

其中第一次使用的总数未分配。

+0

我不敢相信我错过了,谢谢。这就是为什么当我疲倦的时候我不这样做。 – 2012-07-27 14:07:02

0

你不分配一个初始值合计,也许你需要:

int total = 0; 
0

其他的答案是正确的,但我会提供一个替代FWIW不需要初始化变量,因为它是只分配一次。 :)

var total = textBox1.Text 
    .Split(',') 
    .Select(n => Convert.ToInt32(n)) 
    .Sum(); 
相关问题