Leistung statischer Methoden im Vergleich zu Instanzmethoden

Meine Frage bezieht sich auf die Leistungsmerkmale statischer Methoden gegenüber Instanzmethoden und deren Skalierbarkeit. Nehmen Sie für dieses Szenario an, dass sich alle Klassendefinitionen in einer einzelnen Assembly befinden und dass mehrere diskrete Zeigertypen erforderlich sind.

Erwägen:

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.
}

Die obigen Klassen repräsentieren ein Hilfsmuster.

In einer Instanzklasse dauert es einen Moment, bis die Instanzmethode aufgelöst ist, im Gegensatz zu StaticClass.

Meine Fragen sind:

Wenn das Beibehalten des Status keine Rolle spielt (keine Felder oder Eigenschaften sind erforderlich), ist es immer besser, eine statische Klasse zu verwenden?

Wenn es eine beträchtliche Anzahl dieser statischen Klassendefinitionen gibt (z. B. 100 mit jeweils mehreren statischen Methoden), wirkt sich dies negativ auf die Ausführungsleistung oder den Speicherverbrauch aus, verglichen mit der gleichen Anzahl von Instanzklassendefinitionen?

Tritt die Instanzauflösung weiterhin auf, wenn eine andere Methode innerhalb derselben Instanzklasse aufgerufen wird? Zum Beispiel mit dem Schlüsselwort [this] likethis.DoOperation2("abc") von innenDoOperation1 der gleichen Instanz.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage