編集 1: 望遠鏡などの代替手段があることは知っていますが、これは純粋に教育的な質問でした。
私はこれが真実であることを知っていますが、なぜそうでなければならないのですか? 次のようなものがあるようです:
public class Foo{
private int bar;
public void SetBar(int baz = ThatOtherClass.GetBaz(3)){
this.bar = baz;
}
}
コンパイラは、メソッドを次のように変更できます。
public void SetBar(int baz){
//if baz wasn't passed:
baz = ThatOtherClass.GetBaz(3);
this.bar = baz;
}
なぜそれが機能しないのか、または機能するのか、それは単なる設計上の決定ですか?