c#我应该在我的void方法中使用输出吗?

时间:2018-01-03 12:47:24

标签: c# methods output void

 private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            int Number = Convert.ToInt32(textBox1.Text);
            HalfNumber(Number);
            textBox1.Focus();
            textBox1.SelectAll();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    private void HalfNumber(int numberToUse)
    {
        double x = numberToUse / 2.0;
        MessageBox.Show("Half of the number is " + x.ToString());
    }
}
}

上面的代码就是一个例子。
我以为我的讲师说过永远不要在方法中使用输出,因为在测试代码的情况下,代码可能在世界的另一端并且无法看到最新情况。我可能误会了她,但我希望有人解释

2 个答案:

答案 0 :(得分:3)

很难确切地知道她的意思。但是,在执行某些离散操作的函数中放置一个对话框是意料之外的。

HalfNumber方法返回一个数字更合乎逻辑,然后显示包含结果的对话框

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        int Number = Convert.ToInt32(textBox1.Text);
        double myHalfNumber = HalfNumber(Number);

        MessageBox.Show("Half of the number is " +myHalfNumber.ToString());

        textBox1.Focus();
        textBox1.SelectAll();

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

}

private double HalfNumber(int numberToUse)
{      
    return numberToUse / 2.0;
}

关注点分离

  

在软件工程中,关注点分离指的是   描绘和关联软件元素以实现订单   在一个系统内。通过适当分离关注点,复杂性   变得易于管理

不要重复自己(干)

  

旨在减少重复的软件开发原则   软件模式,用抽象取代它们;和几个   使用数据规范化来避免冗余的相同数据的副本。

HalfNumber放入其自己的离散方法中,可以重用代码,并将逻辑分离为仅可维护且可预测的逻辑

答案 1 :(得分:1)

void表示您无法返回任何值。 如果要输出,则需要指定它。 之后,您可以使用返回值。

例如:

private double HalfNumber(int numberToUse)
{
    double x = numberToUse / 2.0;
    return x;
}

你可以这样使用

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        int Number = Convert.ToInt32(textBox1.Text);
        double result = HalfNumber(Number);

        MessageBox.Show("Half of the number is " + result.ToString());
        textBox1.Focus();
        textBox1.SelectAll();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

private double HalfNumber(int numberToUse)
{
    double x = numberToUse / 2.0;
    return x;
}