本人菜鸟,编写一个计算器功能的WINFORMusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;namespace easy_calculator
{
    public partial class btnequal : Form
    {
        public btnequal()
        {
            InitializeComponent();
            
        }              private void button1_Click(object sender, EventArgs e)
        {
            string fristno = firstno.Text;
            string secno = secondno.Text;
          Regex reg = new Regex("^[0-9]+$");
           
          Match mat1 = reg.Match(fristno);            Match mat2 = reg.Match(secno);
            if (mat1.Success && mat2.Success)
            {    
                int results;
                int frist = Convert.ToInt32(fristno);
                int second = Convert.ToInt32(secno);
                
                switch(symbol.SelectedIndex )
                {
                                         case 0:
                        results = frist + second;break;
                    case 1:
                        results = frist -second;
                        break;
                    case 2:
                        results = frist *second;
                        break;
                    case 3:                        results = frist / second;
                        break;
                   // label1.Text = Convert.ToString(results);//如果放在这个地方,显示label1是无法访问的代码
                       
                }                label1.Text = Convert.ToString(results);//此处为什么是未赋值的局部变量呢            }
        }
    }
}

解决方案 »

  1.   

    // label1.Text = Convert.ToString(results);//如果放在这个地方,显示label1是无法访问的代码
    你放在switch中了初始化results时赋值
      int results=0;
    //还有,四则运算的时候有小数的,toint32是不行的。那个正则判断也不太好
    四则运算的时候那个除以,要判断一下second是不是为0
      

  2.   

    因为如果没有进入switch罗列的判断条件results的确是为赋值的状态解决方法1.
     case 3:                     results = frist / second;
                         break;
                     default:
                         results = 0;//如果都不满足提交设置默认值
                         break;
    2.int results=0;//定义时设置默认值
      

  3.   

    因你的switch case 没有default,当0,1,2,3都不满足时,则你的results是没有赋值的加个default: