相关的C++问题:Static local variables in methods a bad practice?

在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中推荐这样做吗?

最佳答案



没有。静态局部变量在一个方面与非局部私有(private)变量完全不同:它们的作用域较小。由于您始终希望将作用域保持尽可能小(=更好的封装),因此局部静态变量可能优于私有(private)变量。

另一方面,局部静态变量可能难以正确初始化。如果需要复杂的初始化(例如,如果以后需要重新初始化变量),则局部静态变量可能不合适。

关于vb.net - 静态局部变量是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5791396/

10-11 23:56
查看更多