VB初心者質問スレ Part7
■ このスレッドは過去ログ倉庫に格納されています
0403デフォルトの名無しさん
NGNG> (どこからでも値を書き換えられる ≒ どこからでもバグを入れられる
> ということで、信頼性、品質に影響しかねない)
具体例を挙げよう。
Private Function func() As String
If flag = 1 then
func = "おまえもな"
ElseIf flag = 2 then
func = "いってよし"
Else
func = "ぐろーばる変数、イイ"
End If
End Function
なんていう関数をみるとflagってなに?ということになるわけだ。
この関数から見えている範囲でflagという変数がないとこの関数はちゃんと動かない。
それにこんなに短い関数なのにflagという変数はどこでどういう値を入れられているのか
ソース中を探し回ることになる。
この場合func(flag As Long)とするだけで関数の独立性を保つことができる。
実際自分がさわっているソースはグローバル変数の洪水状態でたぶんこの変数にはこの値が
入っているはずだけどグローバルになっているせいでどこで書き換えられているかわからないから
仕方なくローカル変数を導入する、ということが日常茶飯事。
ああへぼ会社だ。
他人の書いたソースをさわったりしだすと、グローバル変数の憎さがわかってくる。
(他人 = 未来の自分)
■ このスレッドは過去ログ倉庫に格納されています