Когда статические методы должны быть объявлены в базовом классе? - PullRequest
0 голосов
/ 10 февраля 2011

Когда следует использовать статические методы в базовом классе и защищенные методы? (который может быть вызван из производного класса с использованием base.MethodName)

Ответы [ 3 ]

2 голосов
/ 10 февраля 2011

Статика должна использоваться только тогда, когда ваш метод не зависит от состояния объекта
Защищено, когда вы хотите, чтобы только потомки вызывали методы из базы.

Base.Method в общем случае используется при переопределении методов

1 голос
/ 11 февраля 2011

Одним из преимуществ статического метода является то, что в памяти остается только одна копия кода.Это может быть особенно полезно, если у вас есть большие коллекции объектов с множеством методов.Другими словами, это может уменьшить вашу память.Вы также можете найти более простым или интуитивно понятным управление защищенными блоками кода при работе с общими данными в многопоточной архитектуре.Однако вам может показаться синтаксически неприятным передавать приведенный экземпляр (базового класса) объекта в один из статических методов его базового класса, и некоторые разработчики могут быть смущены этим стилем кодирования, поэтому комментирование такого кода всегда хорошая идея.

1 голос
/ 10 февраля 2011

Защищенный и статический не являются исключительными.

Защищенный означает, что вы разрешаете производным классам доступ к базовому методу.

static означает, что методам не требуется доступ к состоянию экземпляров.Они часто называются методами класса, в отличие от методов экземпляра.

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

...