Это один из тех вопросов, который затихал в моей голове с самого первого дня программирования в VB в целом. У меня есть свои личные представления об этом, но мне интересно, каков общий консенсус в отношении использования статических переменных.Статические или частные
Статическая переменная:
Public Function Whatever() as Boolean
Static Flag as Boolean
If not Flag then
' do something
Flag = True
end if
Return Something
End sub
VS:
Private Variable:
Private Flag as Boolean
Public Function Whatever() as Boolean
If not Flag then
' do something
Flag = True
end if
Return Something
End sub
Если кто не знает, в противном случае, выше функционально эквивалентны, кроме того, что "Приват" Флаг используется для использования в других местах класса.
Вопросы начинают возникать с Статикой .. как ..
Где они хранятся .. когда они действительно созданы и расположены и т.д.
Очевидно, что компилятор добавляет их в кучу данных (I знаю, плохое использование этого слова) для класса каким-то образом ... Но есть ли штраф за это с точки зрения накладных расходов, сбора мусора и т. д.
Вообще я избегаю их, как чумы, потому что они представляют больше вопросов, чем ответов.
Есть ли НАСТОЯЩАЯ причина, когда-либо использующая статику?
PS: Надеюсь, это проходит тест вопрос так ...
Примечание Я не спрашиваю особенности о том, как создаются статика .. Я еще спросить, что если что-нибудь сделает с использованием статического стоит.
ADDENDUM ....
я сделал немного больше исследований, и нашел, что это довольно поучительно.
https://weblogs.asp.net/psteele/7717
Переменные объявленные статические обычно используются для всех экземпляров класса ... Также статическое значение переменной не зависит от объектов, в которых они не уникальны для каждого объекта. Я думаю о статике как константе в некотором смысле ... – Codexer
Возможный дубликат [Когда статическая переменная в Visual Basic создана?] (Http://stackoverflow.com/questions/12199698/when-is-a-static- переменная-в-визуальном-базовом-созданном) –
Ум ... no @Zaggler statics специфичны для экземпляра. –