Производительность статических методов по сравнению с методами экземпляра

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

Рассматривать:

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 того же экземпляра.

Ответы на вопрос(3)

Ваш ответ на вопрос