下面的代码示例将抛出" Not Not Paths返回值"
public static Validation Validate()
{
Validation invalid = new Validation()
InvalidResult(invalid); // why removing the return keyword is not possible??
}
public static Validation InvalidResult(Validation invalid)
{
return invalid; // the return comes from here
}
答案 0 :(得分:7)
因为C#语言不会隐式使用返回的最后一个返回值作为return语句,所以你必须明确它。
public static Validation Validate()
{
Validation invalid = new Validation()
return InvalidResult(invalid);
}
C#语言允许隐式返回的唯一位置是Expression Lambda。
Func<Validation, Validation> example = (invalid) => InvalidResult(invalid);
答案 1 :(得分:5)
简单地说;如果您删除Validate
语句,则return
不会返回任何内容。
当InvalidResult
返回时,您回到Validate
函数内。怎么办? Validate
仍然需要return
。
答案:您需要从InvalidResult
函数返回结果:
public static Validation Validate()
{
Validation invalid = new Validation()
return InvalidResult(invalid);
}
答案 2 :(得分:1)
当您处于调用return语句的函数中时,程序的控制将返回到您调用该函数的位置,并且您应该返回Validation
类型对象。我希望这有点帮助。