The method-body of a method declaration consists of either a block or a
semicolon.
Abstract and external method declarations do not provide a method
implementation, so their method bodies
simply consist of a semicolon. For any other method, the method body is a
block (§15.2) that contains the
statements to execute when that method is invoked.
When the return type of a method is void, return statements (§15.9.4) in
that method?s body are not permitted
to specify an expression. If execution of the method body of a void method
completes normally (that is, control
flows off the end of the method body), that method simply returns to its
caller.
When the return type of a method is not void, each return statement in that
method body must specify an
expression of a type that is implicitly convertible to the return type. The
endpoint of the method body of a valuereturning
method must not be reachable. In other words, in a value-returning method,
control is not permitted to
flow off the end of the method body.
[Example: In the example
class A
{
public int F() {} // Error, return value required
public int G() {
return 1;
}
public int H(bool b) {
if (b) {
return 1;
}
else {
return 0;
}
}
}
the value-returning F method results in a compile-time error because
control can flow off the end of the method
body. The G and H methods are correct because all possible execution paths
end in a return statement that
specifies a return value. end example]
semicolon.
Abstract and external method declarations do not provide a method
implementation, so their method bodies
simply consist of a semicolon. For any other method, the method body is a
block (§15.2) that contains the
statements to execute when that method is invoked.
When the return type of a method is void, return statements (§15.9.4) in
that method?s body are not permitted
to specify an expression. If execution of the method body of a void method
completes normally (that is, control
flows off the end of the method body), that method simply returns to its
caller.
When the return type of a method is not void, each return statement in that
method body must specify an
expression of a type that is implicitly convertible to the return type. The
endpoint of the method body of a valuereturning
method must not be reachable. In other words, in a value-returning method,
control is not permitted to
flow off the end of the method body.
[Example: In the example
class A
{
public int F() {} // Error, return value required
public int G() {
return 1;
}
public int H(bool b) {
if (b) {
return 1;
}
else {
return 0;
}
}
}
the value-returning F method results in a compile-time error because
control can flow off the end of the method
body. The G and H methods are correct because all possible execution paths
end in a return statement that
specifies a return value. end example]
本文详细解析了方法体的概念及其组成,强调了抽象方法与外部方法的特点,并深入讨论了不同返回类型的方法如何正确实现其返回逻辑。对于返回非空值的方法,特别指出了必须在所有可能的执行路径上提供返回值的要求。
747

被折叠的 条评论
为什么被折叠?



