つい集めてしまうものはなんですか?

VBScript の Function、Sub プロシージャで引数を省略したい場合、Optional キーワードが使えないので、空文字を渡すようにしていますが、これは言語仕様的に正しいやり方でしょうか?

Sub MyProc(ByVal a, ByVal b)
. . .
End Sub

Call MyProc(a, "")   '← 引数 b は状況に応じて省略したい。

よろしくお願いします。

A 回答 (1件)

言語仕様ではそんなことまで関知しません。


「サブルーチンの名前にMy...とつけるのは言語仕様的に正しいか」という質問と同レベル。
正しく動作するならどうでもいいです。

省略したいケースとしては、
(1) 前の引数の値によって後の引数が参照されない
(2) 省略した場合にデフォルト値を使いたい

(1)だと何を渡してもいいですね。
(2)だと

Sub MyProc(ByVal a, ByVal b)
if TypeName(b)="Nothing" then
b="default value"
end if
...
end sub

call MyProc("value a",Nothing)

というようにすると「省略している」という感じが強くなると思います。まあ、これも主観の問題。
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報