相关的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/