Heim > Backend-Entwicklung > C#.Net-Tutorial > Einführung in den Unterschied zwischen statischen und nicht statischen Methoden in C#

Einführung in den Unterschied zwischen statischen und nicht statischen Methoden in C#

黄舟
Freigeben: 2017-09-06 13:49:23
Original
1487 Leute haben es durchsucht

Der Unterschied zwischen statischen Methoden und nicht statischen Methoden:

1. Statische Methoden können ohne Klasseninstanziierung aufgerufen werden, wohingegen nicht statische Methoden instanziiert werden müssen, bevor sie aufgerufen werden können

2. Statische Methoden können nur auf statische Mitglieder und Methoden zugreifen, und nicht statische Methoden können darauf zugreifen

 3. Statische Methoden können nicht als Überschreibung markiert werden, was dazu führt, dass abgeleitete Klassen nicht überschrieben werden können kann zugegriffen werden;

 4 .Statische Mitglieder werden bei der ersten Verwendung initialisiert. Nicht statische Mitglieder sind in Bezug auf die Speicherzuweisung beim Erstellen eines Objekts kontinuierlich, während nicht statische Mitglieder in der Speicherspeicherung diskret sind. Daher wird die Geschwindigkeit statischer Methoden in Bezug auf die Aufrufgeschwindigkeit zwischen statischen Methoden und nicht statischen Methoden definitiv variieren Beeilen Sie sich, denn nicht statische Methoden müssen instanziiert und Speicher zugewiesen werden, statische Methoden jedoch nicht, aber der Geschwindigkeitsunterschied ist vernachlässigbar

Wann und wann statische Methoden verwendet werden sollten Instanzen verwenden Methode:

1. Eine Methode hat nichts mit dem Instanzobjekt ihrer Klasse zu tun und ist nicht auf die Instanz von new angewiesen, dann sollte sie statisch sein

2. Es erfordert keine objektorientierten Konzepte. Verwenden Sie manchmal statisch; zum Beispiel Tiere -> RUN, da Sie Katzenlauf und Hundelauf erweitern können, müssen Sie nicht statische Methoden verwenden

Informationen zur Thread-Sicherheit:

Es gibt nur eine Instanz einer statischen Methode. Für eine hohe Parallelität verwenden alle gleichzeitigen Ausführungen diese Methode und der Wert der statischen Variablen ändert sich, was dazu führt Probleme;

Natürlich hat die Unsicherheit der Parallelität nichts mit der Methode selbst zu tun, sondern mit der gemeinsam genutzten Ressource. Wenn beispielsweise eine Variable von jedem Thread bearbeitet wird, kann ihr Wert geändert werden. Parallelität bedeutet eigentlich mehrere Threads) Betreibe es, Der Wert ist verwirrend und es gibt ein Problem

Warum eine nicht statische Methode verwenden

Dies ist eine Methode Es wurde ursprünglich als statische Methode geschrieben. Andere haben keinen Grund, eine Codezeile zu instanziieren und zu speichern, und sie haben nicht über den Unterschied zwischen statischer und nicht-basierter Methode nachgedacht. statisch==! ~~; Natürlich ist es auch möglich, nicht statische Methoden zu schreiben.

Gründe

1. Da die Methode wiederholt aufgerufen werden muss, verursacht der Wechsel zu new jedes Mal Speicheraufwand , verwenden static Die Methode befindet sich immer im Speicher und es ist nicht erforderlich, die Daten in einem neuen Bereich neu zu initialisieren.

2. Es ist nicht erforderlich, OO auszuführen 3. Die Methode hängt nicht vom Inhalt von new ab.

Die klassischere statische Methode, im Grunde alle statischen Methoden in DBHelp

Das obige ist der detaillierte Inhalt vonEinführung in den Unterschied zwischen statischen und nicht statischen Methoden in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage