Статический метод статического класса по сравнению со статическим методом нестатического класса (C#)

Меня задали вышеупомянутый вопрос в интервью. Вы могли объяснить различия? (производительность - память - использование - когда использовать который?)

Спасибо,

Erkan

48
задан Erkan Y. 15 February 2010 в 16:33
поделиться

4 ответа

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

Нестатический класс со статическими членами обычно указывает, что класс разработан для создания экземпляра в какой-то момент. Статические методы этих классов обычно выполняют одно из двух:

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

Также, как упоминалось Уже сейчас методы расширения могут быть объявлены только в статическом классе.

53
ответ дан 26 November 2019 в 18:45
поделиться

Полагаю, вас спросили о различиях?

Статический метод в статическом классе может быть использован для определения метода расширения. Статический метод нестатического класса не может.

20
ответ дан 26 November 2019 в 18:45
поделиться

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

16
ответ дан 26 November 2019 в 18:45
поделиться

Когда вы предоставляете служебные функции и все ваши методы являются статическими, я рекомендую вам использовать статические методы в статическом классе.

Если вы хотите предоставить служебные методы, которые работают только с вашим экземпляром, я рекомендую вам использовать статические методы в нестатическом классе. Например:

var myClass = MyClass.Create();
var myClass = MyClass.Parse("serialized.MyClass");
6
ответ дан 26 November 2019 в 18:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: