#.net
Вопрос:
В чем разница между экземпляром и статическими переменными/функциями .Есть ли какой-либо прирост производительности при использовании статических переменных.В каких условиях мы должны использовать статические вместо переменных/функций экземпляра. я не уверен, когда мне следует использовать статические переменные/функции вместо экземпляров
Ответ №1:
Статические члены принадлежат классу, в то время как члены экземпляра принадлежат экземплярам (объектам) этого класса. Всегда будет только одна копия статической переменной.
Методы могут быть сделаны статическими, если:
- Они не ссылаются ни на каких нестатических членов своего класса, и
- Они не определены для реализации интерфейса или переопределения метода в суперклассе.
Статические методы не имеют скрытого this
параметра, поэтому им требуется меньше места в стеке. Но статические методы по своей сути не являются более быстрыми.
Поля/свойства должны быть статичными только в том случае, если вам нужна только одна «копия» поля/свойства. Если вы хотите, чтобы каждый объект вашего класса имел свою собственную копию поля или свойства, он не должен быть статичным.