【发布时间】:2018-01-07 01:58:42
【问题描述】:
在以下示例中,我有两种方法可以做同样的事情:
public class Program
{
int result=0;
int result2= 0;
public void Add(int num1, int num2){
result = num1 + num2;
}
public int Add2(int num1, int num2){
return result2 = num1 + num2;
}
public static void Main(string[] args)
{
Program program = new Program();
program.Add(5,6);
Console.WriteLine(program.result);
program.Add2(4,2);
Console.WriteLine(program.result2);
}
}
我知道 void 方法没有返回值,所以在上面的示例中,当我调用 Add(int num1, int num2) 时,它不会将结果返回给全局变量吗?
如果是这样,为什么当我打印变量时它会在添加后打印出结果?不应该打印出0吗?
【问题讨论】:
-
它不会将任何类型返回给调用代码,但它会将添加的值赋给全局变量
-
void 方法没有返回任何东西。您正在设置本质上是全局变量的内容。
void方法允许有副作用。 -
"不是将结果返回给全局变量吗?" - 好吧,它正在为
result字段分配一个值。这并不是真正的“返回结果”——它只是为变量赋值。请注意,当您调用Add2方法时,您忽略了返回值...碰巧在 return 语句中,您也将值分配给result2。
标签: c#