Я просматривал документацию MSDN по малоиспользуемому ключевому слову VB.Net Static для локальных переменных.У меня вопрос , а не о том, как работает Static (лично я планирую избегать его использования, поскольку кажется, что это может вызвать горе у будущих программистов, которые не замечают побочных эффектов). Мой вопрособ этом утверждении в документах :
Поведение любой локальной переменной зависит от того, объявлена ли она в общей процедуре.Если процедура Shared, все ее локальные переменные автоматически становятся общими.Это включает в себя статические переменные.Существует только одна копия такой переменной для всего приложения.
Похоже, это означает, что все локальные переменные в Shared Sub будут вести себя как статические переменные - они будут сохранять свои значениячерез отдельные звонки.Но я знал, что это не так, и я написал небольшую тестовую программу, чтобы доказать это:
Class TestSharedSub
Shared Sub Main()
Test()
Test()
Test()
Console.Write("Press any key to continue...") : Console.ReadKey()
' Output:
' 1, 1
' 2, 1
' 3, 1
End Sub
Shared Sub Test()
Dim iNormal As Integer
Static iStatic As Integer
iNormal += 1
iStatic += 1
Console.WriteLine(iStatic & ", " & iNormal)
End Sub
End Class
Так может ли кто-нибудь истолковать приведенное выше утверждение для меня таким образом, который имеет смысл?Или это ошибка в документации?Он был там с версии документации VS 2005 и до сих пор присутствует в версии Visual Studio 11.