著作一覧 |
その頃、MSではインテリセンスを導入した。
VBAでは、サポートがめんどうなキーワード引数ってのがあって、
c = app.foo(bar = 1, baz = "gogo")
みたいに書けるのだが、それよりも、よっぽど、
app.foo(
と書いた瞬間に、
「int bar : なんちゃらの数値」
というようなガイドが出て来て、おおそうか、と1を入れるってほうが書くときは便利だ。
というわけでヴィジュアル系プログラマは、プログラムは読まない(読めない、かも)。
#実際は、書いた後でも、fooにマウスを持っていけば
「int Application.foo(int bar, string baz); barとbazを合成した値を返します」とか瞬時に表示されるので、読むのもVSさえあれば楽勝。のはず。少なくてもドキュメントしてあれば。
ジェズイットを見習え |
はじめまして。IDynamicObjectで検索してきました。<br>VBの名前付きパラメータは、読みやすさだけではなく、デフォルト引数を実現させるための仕組みでもあると思っています。
デフォルト引数は、位置情報から設定できるので、名前つき引数とは関係ないですよ。でも、名前つき引数を利用すると中抜きができるから、そうも言えるのかなぁ。<br>……(ちょっと考えている)……確かに、そういうメリットもありますね。
というか、そんなにだらだら引数を並べさせてキーワードによる読みやすさがうんぬんされるようなAPIは問題外だと思うけど(確かにそんなのがOfficeには多い)。引数が4個越えたら値オブジェクトを使うほうがよっぽどスマートだと思います(一般論としては。Officeオートメーションの場合はプロセス間通信のコストが余分にかかるから――値オブジェクトとして動かすにも、IMarshalにエラーを返すというようなプロトコルが必要となるし――1990年代のAPIとしてはしょうがない気はします)。