[リストへもどる]
一括表示

投稿時間:2002/10/18(Fri) 17:19
投稿者名:疑問の持ち主
URL :
タイトル:
vbNullStringについて
たいていのマニュアルには『vbNullStringはポインタであり、""(空文字)とは異なる』とあるのですが、
一覧表の「プログラム高速化」の使い方もOKなのでしょうか、ぜひとも教えてください。

投稿時間:2002/10/18(Fri) 18:47
投稿者名:よねKEN
Eメール:
URL :
タイトル:
Re: vbNullStringについて
> たいていのマニュアルには『vbNullStringはポインタであり、""(空文字)とは異なる』とあるのですが、
> 一覧表の「プログラム高速化」の使い方もOKなのでしょうか、ぜひとも教えてください。

何をもってOKとお考えでしょうか?
プログラムの動作として問題ないか?という意味なら問題ないと思います。
""とvbNullStringはアドレスが違うだけです。vbNullStringはアドレス0、つまり、ヌルポインタです。

が、""の代わりにvbNullStringを使ったところでスズメの涙程度の差なので、
そういう細かいところでの高速化をはかるべきではないと思います。

vbNullStringが唐突にコードにでてきたら、私なら何を思ってvbNullStringを
使っているのだろう?と怪しんでコードを読みますね。
高速化を狙ったのかな?とも考えますが、それよりはvbNullCharやNullと勘違いして
使っていたりして・・・と疑惑を持ってしまいます(^^;
さらには、vbNullStringで高速化されることを知らない人にとってはただの混乱の種です。
個人的に書いているコードならどちらでもいい話ですが、
業務プログラムでは避けた方がよいと思います。

""でよいところは""と書いた方が素直です。vbNullStringを知らなくてもいいし、
""と書いてあるコードなら、新人さんでも読めるでしょう。

投稿時間:2002/10/19(Sat) 00:39
投稿者名:A221
Eメール:
URL :
タイトル:
Re: vbNullStringについて
> たいていのマニュアルには『vbNullStringはポインタであり、""(空文字)とは異なる』とあるのですが、
> 一覧表の「プログラム高速化」の使い方もOKなのでしょうか、ぜひとも教えてください。

単純な高速化ならば下記のとおり
"" > VBNullString > Len()
参考数値:2秒32  0秒91 0秒77(IF文で10000000ループ)
となりますが、よねKENさんも述べておられるように、プログラムの可読性が悪くなります。
こだわりがなければ""でもよいのでは?

投稿時間:2002/10/19(Sat) 10:24
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: vbNullStringについて
私の個人的な意見ですが、vbNullString は定数ですので、定数があるものは、定数を
使った方がいいかと思います。
私は、プログラムはパーツの集まりとして捉えております、僅かな効果しかなくても、
ループの時の型合わせや文字列関数に $ をつけております。

ヘルプにも下記のように記入されています。

定数を使うと、アプリケーションの実行速度は高速になります。また、定数によって
コードは読みやすくなり、保守もしやすくなります。コード中に値が変化しない文字列や
数値がある場合は、それらを定数として宣言します。定数はプログラムのコンパイル時に
一度に解決され、その値がコードに直接書き込まれます。これに対して、変数を使うと、
アプリケーションは実行中にその変数が見つかるたびに、現在の値を取得する必要があります。

プログラムの可読性と言う事なら、だれが見た場合と言う事になるかと思うのですが
定数を使っている場合には、一応標準化されているので問題ないかと思うのですが。
個人的な主観にもよるので!

投稿時間:2002/10/19(Sat) 10:57
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: vbNullStringについて
> 私の個人的な意見ですが、vbNullString は定数ですので、
> 定数があるものは、定数を使った方がいいかと思います。

私も同感です。

String型変数の初期値はvbNullStringですし、vbNullStringで
しかあらわせないので、いろいろと使う場所・価値がある、と
見ています。

投稿時間:2002/10/19(Sat) 12:24
投稿者名:A221
Eメール:
URL :
タイトル:
Re^2: vbNullStringについて
> プログラムの可読性と言う事なら、だれが見た場合と言う事になるかと思うのですが
> 定数を使っている場合には、一応標準化されているので問題ないかと思うのですが。
> 個人的な主観にもよるので!

言葉が足りず、誤解を招いてしまったようです。

>プログラムの可読性が悪くなります。

すみません。この前に、一文、
「使い慣れていないものを使えば、」
と入れさせください。

ついでに、私の主観で言えば「空の文字列」でとらえるよりも
「長さ0の文字列」がしっくりくるので、私はLen()での判定を使用しています。

また、速度全般でこだわるならば規定プロパティも省くことになりますが、
私は「TextBox」ではなく、「TextBox.Text」と記述します。

つまりいいたかったことは、
「本人が読みやすく、他者も読みやすければいいんじゃないか」ということです。

決してVbNullstringに対する私の主観を押し付けたかったわけではありません。
繰り返し、誤解を招く言動であったとお詫びします。