広告がダサすぎてだっさって声出た
この解釈、 set ならまだそうかなと思えなくもないんだけど、メンバ変数 (プロパティ?) に対して使うのはなんだか……という感じがする (べつに理屈としてはおかしくないと思うんだけど)。
実装の自明さへのイメージが邪魔なだけ?
getFoo というメソッドならば、重い処理が裏にあってもわからなくもない。メソッド呼び出しとは何が起こるかわからないから、呼び出し側は十分に注意するものなので、 getFoo の結果は(何度呼び出しても同じなら)使いまわすよう必ずコードを書く。
※もし C# のプロパティで Foo というプロパティの getter が重かったらキレる。これは構文上メソッド呼び出しにならないので、コストはないもののみに適用するべき。
僕の見解としては、重いメソッドに「getFoo」とつけるのはおすすめしないが、一方で呼び出し側は getFoo という名前だからと言って中身がただのフィールドアクセスという仮定を置いてはいけない です
(これはただのクソ C#er のお気持ちなんですけど、プロパティのアクセサもメソッド呼び出しとしてコンパイルされることを知っているので、プロパティについても僕は結構警戒するような、つまり複数回使うならローカル変数に代入しておくようなコードを書きます)
Java の LinkedList は List インターフェイスを実装するのでインデックスアクセスができるけど、 .NET の LinkedList は IReadOnlyList を実装していないのは面白い。 IReadOnlyList のインデクサは O(1) にしか使わせないという強い意志を感じる