编辑1:我知道有一些替代品,如伸缩式,这是一个纯粹的教育问题.
我知道这是真的,但为什么一定是这样呢?看起来像是这样的:
public class Foo{
private int bar;
public void SetBar(int baz = ThatOtherClass.GetBaz(3)){
this.bar = baz;
}
}
Run Code Online (Sandbox Code Playgroud)
编译器可以将方法更改为:
public void SetBar(int baz){
//if baz wasn't passed:
baz = ThatOtherClass.GetBaz(3);
this.bar = baz;
}
Run Code Online (Sandbox Code Playgroud)
为什么那不起作用,或者不行,这只是一个设计决定?