Heim >Backend-Entwicklung >C#.Net-Tutorial >Statische Klasse in C#

Statische Klasse in C#

王林
王林Original
2024-09-03 15:32:301251Durchsuche

Eine statische Klasse ist eine Klasse, die wir nicht instanziieren können. Das einzige und wichtigste Ziel der statischen Klasse besteht darin, Blaupausen der geerbten Klassen bereitzustellen. Es wird mit Hilfe des Schlüsselworts „static“ in C# erstellt. Die statische Klasse enthält nur statische Mitglieder. Wir können das Objekt für die statische Klasse nicht erstellen. In diesem Thema lernen wir die statische Klasse in C# kennen.

Statische Mitglieder

Die statische Klasse in C# besteht aus zwei Arten von Statik, die unten dargestellt sind:

1. Statische Datenmitglieder

Statische Datenelemente werden durch die Verwendung des Schlüsselworts static deklariert, da die statische Klasse immer die statischen Datenelemente enthält. Der Zugriff auf sie erfolgt auch direkt über den Klassennamen. Der Speicher der statischen Datenelemente wird unabhängig von ihrer Beziehung zum Objekt individuell zugewiesen.

Syntax:

static class NameOfClass
{
public static name_of_datamember;
}

Beispiel:

public class Vehicle
{
public static int Wheels = 4;
public static int GasTank
{
get
{
return 23;
}
}
public static void move() { }
public static event EventType RunOutOfGas;
// Extra non-static fields as well as properties
}

Sie werden initialisiert, bevor auf das statische Mitglied zum ersten Mal zugegriffen wird und vor dem statischen Konstruktor, falls einer aufgerufen wird. Um darauf zuzugreifen, verwenden wir den Namen der Klasse anstelle eines Variablennamens.

2. Statische Methoden

Die Verwendung des Schlüsselworts static deklariert statische Methoden, da die statische Klasse immer statische Methoden enthält. Diese Methoden können nur auf die statischen Datenelemente zugreifen und nicht auf nicht statische Datenelemente.

Syntax:

static class name_of_class
{
public static name_of_method()
{
// code
}
}

Beispiele für statische Klassen in C#

Hier sind die folgenden Beispiele aufgeführt

Beispiel #1

Code:

/*
* C# Program to Check whether the Entered Number is Even or Odd
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace check1
{
class EvenAndOdd
{
static void Main(string[] args)
{
int i;
if (4 % 2 == 0) // You can enter any number you wish to check for even / odd
{
Console.Write("Entered Number is an Even Number");
Console.Read();
}
else
{
Console.Write("Entered Number is an Odd Number");
Console.Read();
}
}
}
}

Ausgabe:

Statische Klasse in C#

Beispiel #2

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public static class ABC {
// declaration of static Method
static void details()
{
Console.Write("Static Method of the class ABC is");
}
}
// Inheritance of the class ABC which would give an error since static
// class cannot be inherited
class ABC2 : ABC
{
public static void Main(String[] args)
{
}
}

Ausgabe:

Statische Klasse in C#

Erklärung: Im ersten Beispiel gibt es eine statische Klasse namens „Book“, die das Schlüsselwort „static“ verwendet. Die Klasse Book besteht aus statischen Datenelementen namens name, l und t sowie einer statischen Methode namens specs(). Diese Methode der statischen Klasse wird unter Verwendung des Klassennamens, also Book, aufgerufen. specs();. Da uns bereits bekannt ist, dass die statische Klasse nicht aus Objekten besteht, erfolgt der Zugriff auf Datenelemente der Klasse „Book“ über ihren Klassennamen, also „Book.name, Book“. l und Book.t.

Statische Konstruktoren

Statische Konstruktoren sind grundsätzlich bei der Initialisierung der statischen Datenelemente nützlich, im Vergleich zum normalen Konstruktor, d. h. dem nicht statischen Konstruktor, der bei der Initialisierung der nicht statischen Datenelemente nützlich ist.

Funktionen/Regeln:

  1. Sie dürfen keinen der Zugriffsmodifikatoren haben.
  2. Sie können nicht zusammen mit Argumenten definiert werden.
  3. Sie haben keinen Zugriff auf nicht statische Datenelemente.

Speicherzuweisung für statische Elemente

Sie müssen wissen, dass die Grundkomponenten des Anwendungsspeichers Heap und Stack sind. Ein spezieller Bereich innerhalb des Heaps wird als Hochfrequenz-Heap bezeichnet, in dem statische Elemente gespeichert werden. Statische Mitglieder, die ebenfalls zu nicht statischen Klassen gehören, werden in einem Heap gespeichert und dann von allen Instanzen der Klasse gemeinsam genutzt. Daher werden die von einer Instanz vorgenommenen Änderungen in allen anderen Instanzen widergespiegelt.

Wie Sie sicher bereits wissen, kann das statische Mitglied nur andere statische Mitglieder enthalten, da statische Mitglieder unabhängig von der Erstellung einer Instanz aufgerufen werden. Von nun an können sie nicht mehr auf nicht statische Mitglieder zugreifen.

Vorteile der statischen Klasse in C#

  1. Wir erhalten eine Fehlermeldung, falls Sie eines der Mitglieder als nicht statisches Mitglied angeben.
  2. Erneut wird ein Fehler bei der Kompilierung generiert, wenn wir versuchen, eine Instanz für eine statische Klasse zu erstellen, da auf statische Mitglieder direkt zusammen mit ihrem Klassennamen zugegriffen werden kann.
  3. Das Schlüsselwort static wird vor dem Schlüsselwort class in der Klassendefinition verwendet, um eine statische Klasse zu deklarieren.
  4. Auf statische Klassenmitglieder kann über den Klassennamen, gefolgt vom Mitgliedsnamen, zugegriffen werden.

Fazit

  • Wir können die statischen Klassen nicht mit dem neuen Schlüsselwort instanziieren
  • Statische Elemente haben nur die Möglichkeit, auf andere statische Elemente zuzugreifen. Bedenken Sie, dass die statische Klasse nur statische Mitglieder wie Variablen, Methoden usw. enthält.
  • Eine statische Methode enthält nur statische Variablen und sie können auch nur auf die restlichen statischen Elemente zugreifen.
  • Statische Elemente haben die Möglichkeit, Ressourcen zwischen mehreren Benutzern zu teilen.
  • Statisch können wir nicht zusammen mit Indexern, Destruktoren oder anderen Typen als den Klassen verwenden.
  • Außerdem wird ein statischer Konstruktor in der nicht-statischen Klasse nur einmal ausgeführt, wenn die Klasse zum ersten Mal instanziiert wird.
  • Außerdem wird ein in der statischen Klasse vorhandener statischer Konstruktor nur einmal ausgeführt, wenn zum ersten Mal auf eines der statischen Mitglieder zugegriffen wird.
  • Statische Mitglieder werden in einem Hochfrequenz-Heap-Speicherbereich zugewiesen.

Das obige ist der detaillierte Inhalt vonStatische Klasse in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:C#-DatenrasteransichtNächster Artikel:C#-Datenrasteransicht