Мой вопрос касается характеристик производительности статических методов против методов экземпляров и их масштабируемости. Предположим для этого сценария, что все определения классов находятся в одной сборке и что требуются несколько типов дискретных указателей.
Рассмотрим:
public sealed class InstanceClass
{
public int DoOperation1(string input)
{
// Some operation.
}
public int DoOperation2(string input)
{
// Some operation.
}
// … more instance methods.
}
public static class StaticClass
{
public static int DoOperation1(string input)
{
// Some operation.
}
public static int DoOperation2(string input)
{
// Some operation.
}
// … more static methods.
}
Вышеуказанные классы представляют собой шаблон стиля помощника.
В классе экземпляра решение метода экземпляра занимает некоторое время, чтобы противостоять StaticClass.
Мои вопросы:
-
Сохранение состояния не вызывает беспокойства (никаких полей или свойств не требуется), всегда ли лучше использовать статический класс?
-
Если существует значительное количество этих статических определений классов (например, 100, например, с несколькими статическими методами), это будет отрицательно влиять на производительность выполнения или потребление памяти по сравнению с тем же числом определений классов экземпляра
-
Когда вызывается другой метод внутри одного класса экземпляра, сохраняется ли разрешение экземпляра? Например, используя ключевое слово [this], например
this.DoOperation2("abc")
, изDoOperation1
того же экземпляра.