статические переменные и функции

#.net

Вопрос:

В чем разница между экземпляром и статическими переменными/функциями .Есть ли какой-либо прирост производительности при использовании статических переменных.В каких условиях мы должны использовать статические вместо переменных/функций экземпляра. я не уверен, когда мне следует использовать статические переменные/функции вместо экземпляров

Ответ №1:

Статические члены принадлежат классу, в то время как члены экземпляра принадлежат экземплярам (объектам) этого класса. Всегда будет только одна копия статической переменной.

Методы могут быть сделаны статическими, если:

  1. Они не ссылаются ни на каких нестатических членов своего класса, и
  2. Они не определены для реализации интерфейса или переопределения метода в суперклассе.

Статические методы не имеют скрытого this параметра, поэтому им требуется меньше места в стеке. Но статические методы по своей сути не являются более быстрыми.

Поля/свойства должны быть статичными только в том случае, если вам нужна только одна «копия» поля/свойства. Если вы хотите, чтобы каждый объект вашего класса имел свою собственную копию поля или свойства, он не должен быть статичным.