gpt4 book ai didi

c# - C# 中的空 return 语句位于何处?

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:03 25 4
gpt4 key购买 nike

对于下面的代码,两个 WriteLine 结果输出都是 30。

不知道为什么第二个结果也是30

我认为如果值为-1,那么程序就跑出了大括号{ return; },并移至 {} 之后的下一行。

是否正确?

class Program
{
static void Main(string[] args)
{
Person pp = new Person();
pp.Age = 30;
// Output is 30
Console.WriteLine("the age is {0}", pp.Age);
pp.Age = -1;
// Output is 30 again
Console.WriteLine("the age is {0}", pp.Age);

}
}

class Person
{
private int age;
public int Age
{
set
{
if (value < 0)
{
// An empty return statement
return;
}

// if the value is -1, does it go through this line?
this.age = value;

}
get
{
return this.age;
}
}

}

最佳答案

return 关键字从函数中返回控制权(无论您在多少嵌套范围内)。这种“纾困”方法是早期返回被视为不良做法的原因之一。所以基本上,您的程序流程如下:

  1. 调用 setter 30
  2. value > 0,跳过 {}
  3. 将支持字段设置为 30
  4. 打印属性(仍为 30)
  5. 用-1调用setter
  6. value < 0,执行{}
  7. 中的内容
  8. 返回,函数执行停止并返回给调用者
  9. 打印属性(仍然是 30,因为什么都没有设置)

如果您在 setter 中进行验证,抛出异常是一种更好的方法。

关于c# - C# 中的空 return 语句位于何处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22393366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com