Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in verschiedene Verwendungsmöglichkeiten von new in C#

Detaillierte Einführung in verschiedene Verwendungsmöglichkeiten von new in C#

黄舟
黄舟Original
2017-03-17 13:05:411843Durchsuche

In diesem Artikel werden hauptsächlich verschiedene Verwendungen von new in C# vorgestellt, die einen sehr guten Referenzwert haben. Schauen wir uns das mit dem Editor an.

In C# das Schlüsselwort new Kann als Operator, Modifikator oder Einschränkung verwendet werden.

Neuer Operator

wird verwendet, um Objekte zu erstellen und Konstruktor aufzurufen.

neuer Modifikator

wird verwendet, um geerbte Mitglieder vor Basisklassenmitgliedern zu verbergen.

Neue Einschränkung

wird verwendet, um die Parametertypen einzuschränken, die als Typparameter in einer generischen Deklaration verwendet werden können.

neuer Modifikator (C#-Referenz)

Bei Verwendung als Modifikator kann das neue Schlüsselwort explizit von einer Basisklasse geerbte Mitglieder ausblenden. Das Ausblenden eines geerbten Mitglieds bedeutet, dass die abgeleitete Version des Mitglieds die Basisklassenversion ersetzt. Das Ausblenden von Mitgliedern ohne den neuen Modifikator ist zulässig, es wird jedoch eine Warnung generiert. Durch das explizite Ausblenden eines Mitglieds mithilfe von „new“ wird diese Warnung unterdrückt und die Tatsache protokolliert, dass stattdessen die abgeleitete Version verwendet wird.

Um ein geerbtes Mitglied auszublenden, deklarieren Sie das Mitglied in einer abgeleiteten Klasse mit demselben Namen und ändern Sie das Mitglied mit dem neuen Modifikator

neuer Operator (C#-Referenz)

1. Wird zum Erstellen von Objekten und zum Aufrufen von Konstruktoren verwendet. Beispiel:

Class1 o = new Class1();

2. Wird auch zum Aufrufen des Standardkonstruktors für Werttypen

Beispiel: int myInt = new int();

myInt wird auf 0 initialisiert, was dem Standardwert des int-Typs entspricht. Die Wirkung dieser Anweisung ist äquivalent zu: int myInt = 0;

3 Der new-Operator kann nicht durch überladen werden.

4. Wenn der neue Operator keinen Speicher zuordnet, wird eine OutOfMemoryException-Ausnahme

ausgelöst neue Einschränkungen (C#-Referenz)

neu Die Einschränkung gibt an, dass jeder Typparameter in einer generischen Klassendeklaration einen öffentlichen, parameterlosen Konstruktor haben muss. Wenn eine generische Klasse eine neue Instanz des Typs erstellt, wird diese Einschränkung auf die Typparameter angewendet, wie im folgenden Beispiel gezeigt:

class ItemFactory<T> where T : new() 
{ 
public T GetNewItem() 
{ 
return new T(); 
} 
}
Das Ausblenden von Namen durch Vererbung nimmt eine der folgenden Formen an:

 1. Führen Sie Konstanten, Bezeichnungen,

Attribute oder Typen in Klassen oder Strukturen ein, um alle Basisklassenmitglieder mit demselben Namen auszublenden.

2. Durch die Einführung von Methoden in eine Klasse oder Struktur werden Attribute, Felder und Typen mit demselben Namen in der Basisklasse ausgeblendet. Versteckt außerdem alle Basisklassenmethoden mit derselben Signatur.

 3. Durch die Einführung des

Indexersin eine Klasse oder Struktur werden alle Basisklassenindexer mit demselben Namen ausgeblendet.

 4. Es ist falsch, new und override gleichzeitig für dasselbe Mitglied zu verwenden.

HINWEIS: Die Verwendung des neuen Modifikators in einer Deklaration, die geerbte Mitglieder nicht verbirgt, führt zu einer Warnung.

Beispiel

In diesem Beispiel verbirgt die verschachtelte Klasse MyClass die gleichnamige Klasse in der Basisklasse. Dieses Beispiel veranschaulicht nicht nur, wie Sie mithilfe vollständig qualifizierter Namen auf ausgeblendete Klassenmitglieder zugreifen, sondern auch, wie Sie den neuen Modifikator verwenden, um Warnmeldungen zu unterdrücken.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in verschiedene Verwendungsmöglichkeiten von new 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