8

関連する C++ の質問:メソッド内の静的ローカル変数は悪い習慣ですか?

VB.NET では、単純なカウンターまたはメソッドが呼び出されるたびにインクリメントするものが必要な場合、次のようなコードを書くことがよくあります。

Private Sub tmrRefresh_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrRefresh.Tick

  Static a As Integer = 0
  a += 1
  '...rest of method depends on a

End Sub

これは VB.NET と OOP で一般的に推奨されていますか?

4

2 に答える 2

9

静的ローカル変数は悪い習慣ですか?

いいえ。静的ローカル変数は、非ローカルプライベート変数に関して1つだけ異なります。つまり、スコープが小さくなります。スコープを常に可能な限り小さく(=より適切なカプセル化)したいので、ローカル統計はプライベート変数よりも有利な場合があります。

反対に、ローカル静的変数は正しく初期化するのが難しい場合があります。複雑な初期化が必要な場合(たとえば、後で変数を再初期化する必要がある場合)、ローカル静的変数は不適切な場合があります。

于 2011-04-26T14:13:09.753 に答える