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有很多用途,但这似乎不是)。然后调用代码可以决定如何显示输出。讲师是对的,像这样的方法只是用于执行业务逻辑,它们不应该直接与用户进行任何交互。