不能在MainWindow方法之外使用文本框

时间:2014-08-01 07:32:35

标签: c# wpf methods

我正在尝试创建一个整数,该整数由box1中的数字组成(在wpf中)。 但编译器不允许我编译我的代码。怎么了?

    public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    private int addValues()
    {
        int var1 = int.Parse(box1.Text);
    }
}

错误是:

wpfapplication1.mainwindow.addValues。并非所有代码路径都返回值

3 个答案:

答案 0 :(得分:0)

private int addValues()
{
    int var1 = int.Parse(box1.Text);
    return var1;
}

它不合理,有一个返回类型但不返回值的方法。

明智,

private void addValues()
{
    int var1 = int.Parse(box1.Text);
}

答案 1 :(得分:0)

您需要在AddValues(int值)中返回一些内容或将其设置为void。

例如:

private int addValues(){ return int.Parse(box1.Text); }

private void addValues(){ int var1 = int.Parse(box1.Text); }

最后一个方法(你的方法)的问题根本不起作用(解析一个值而不在任何地方使用它)。

答案 2 :(得分:0)

由于您已将addValues方法的返回类型声明为int,因此您告诉编译器您希望此方法返回值,因此在某些时候您的方法必须返回一个整数,例如

private int addValues()
{
    return int.Parse(box1.Text);
}

其他选项包括删除返回类型

private void addValues()
{
    int var1 = int.Parse(box1.Text);
}

次要注意是使用TryParse添加错误处理 - 这将确保如果box1.Text不是有效数字,您仍将返回一个整数(0)

private int addValues()
{
    int ret_val;
    int.TryParse(box1.Text, out ret_val);
    return ret_val;
}