Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#我应该在void方法中使用输出吗?_C#_Methods_Output_Void - Fatal编程技术网

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

c#我应该在void方法中使用输出吗?,c#,methods,output,void,C#,Methods,Output,Void,上面的代码就是一个例子 我想我的导师说过永远不要在方法中使用输出,因为在测试代码的情况下,代码可能位于世界的另一端,无法看到发生了什么

上面的代码就是一个例子

我想我的导师说过永远不要在方法中使用输出,因为在测试代码的情况下,代码可能位于世界的另一端,无法看到发生了什么<我可能误解了她,但我想请人解释一下,很难确切地知道她是什么意思。然而,在函数中放置一个对话框来做一些离散的事情是出乎意料的

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

 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());
    }
}
}
关注点分离

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

不要重复自己的动作(干燥)

一种软件开发原则,旨在减少重复性 软件模式,用抽象代替它们;还有几个 复制相同数据,使用数据规范化以避免冗余


将一个
半数字
放入它自己的离散方法中,允许您重用代码,并将该逻辑从中分离出来,使之成为唯一可维护和可预测的逻辑

很难确切地知道它的意思。然而,在函数中放置一个对话框来做一些离散的事情是出乎意料的

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

 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());
    }
}
}
关注点分离

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

不要重复自己的动作(干燥)

一种软件开发原则,旨在减少重复性 软件模式,用抽象代替它们;还有几个 复制相同数据,使用数据规范化以避免冗余


将一个
半数字
放入它自己的离散方法中,允许您重用代码,并将该逻辑从中分离出来,使之成为唯一可维护和可预测的逻辑

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

例如:

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;
}
你可以这样用

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

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

例如:

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;
}
你可以这样用

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

Output和void并不相互排斥,但是
Output
有很多含义。在显示器上显示消息只是其中之一,如果没有人可以关闭该对话框,则不合适。但输出也意味着要写入日志文件,如果在void方法中需要记录一些错误情况,这是完全合理的。听起来你误解了你的指导老师。假设您看到一个名为
HalfNumber
的方法,您希望它做什么?对我来说,它应该是一个数字,并返回它的一半,显示一个消息框将是一个意外的副作用。在这个特定的情况下,您的方法似乎应该简单地进行计算并将值返回给调用方。我不认为它应该是void(void有很多用途,但这似乎不是)。然后调用代码可以决定如何显示输出。讲师说得对,像这样的方法只是为了做业务逻辑,它们不应该直接与用户进行任何交互。Output和void并不相互排斥,但是
Output
有很多含义。在显示器上显示消息只是其中之一,如果没有人可以关闭该对话框,则不合适。但输出也意味着要写入日志文件,如果在void方法中需要记录一些错误情况,这是完全合理的。听起来你误解了你的指导老师。假设您看到一个名为
HalfNumber
的方法,您希望它做什么?对我来说,它应该是一个数字,并返回它的一半,显示一个消息框将是一个意外的副作用。在这个特定的情况下,您的方法似乎应该简单地进行计算并将值返回给调用方。我不认为它应该是void(void有很多用途,但这似乎不是)。然后调用代码可以决定如何显示输出。讲师是对的,像这样的方法只是用于执行业务逻辑,它们不应该直接与用户进行任何交互。