Indexer ist ein spezielles Klassenmitglied, das den Zugriff auf Objekte auf Array-ähnliche Weise ermöglicht, wodurch das Programm intuitiver und einfacher zu schreiben ist.
1. Definition des Indexers
Klassenmitglieder in C# können von jedem Typ sein, einschließlich Arrays und Sammlungen. Wenn eine Klasse Array- und Sammlungsmitglieder enthält, vereinfachen Indexer den Zugriff auf Array- oder Sammlungsmitglieder erheblich.
Die Art und Weise, einen Indexer zu definieren, ähnelt in etwa der Definition eines Attributs. Seine allgemeine Form ist wie folgt:
[修饰符] 数据类型 this[索引类型 index] { get{//获得属性的代码} set{ //设置属性的代码} }
Modifikatoren umfassen öffentlich, geschützt, privat, intern, neu, virtuell. versiegelt, überschreiben, abstrakt, extern.
Der Datentyp ist der Typ, der die Array- oder Sammlungselemente darstellt, auf die zugegriffen werden soll.
Der Indexertyp gibt an, welchen Indextyp der Indexer verwendet, um auf Array- oder Sammlungselemente zuzugreifen. Dies kann eine Ganzzahl oder eine Zeichenfolge sein. Dies stellt das Array oder Sammlungsmitglied dar, das dieses Objekt betreibt. Dies kann einfach It sein wird als Name des Indexers verstanden, daher können Indexer keine benutzerdefinierten Namen haben. Beispiel:
class Z { //可容纳100个整数的整数集 private long[] arr = new long[100]; //声明索引器 public long this[int index] { get { //检查索引范围 if (index < 0 || index >= 100) { return 0; } else { return arr[index]; } } set { if (!(index < 0 || index >= 100)) { arr[index] = value; } } }
2. Verwendung des Indexers
Sie können über Indexer auf Array-Mitglieder von Instanzen zugreifen. Die Operationsmethode ähnelt der von Arrays wie folgt: Objektname [Index]
Der Datentyp des Index muss mit dem Indextyp des Indexers identisch sein. Beispiel:
Z z=new z(); z[0]=100; z[1]=101; Console.WriteLine(z[0]);
//Gibt an, dass zuerst ein Objekt z erstellt wird und dann über den Index auf die Array-Elemente im Objekt verwiesen wird.
C# beschränkt den Typ des Indexers nicht auf Ganzzahl. Sie können beispielsweise Zeichenfolgen mit Indexern verwenden. Ein Indexer dieses Typs wird implementiert, indem nach einer Zeichenfolge innerhalb einer Sammlung gesucht und der entsprechende Wert zurückgegeben wird. Da Accessoren überlastet sein können, können String- und Integer-Versionen nebeneinander existieren.
class DayCollection { string[] days={"Sun","Mon","Tues","Wed","Thurs","Fri","Sat"}; private int GetDay(string testDay) { int i=0; foreach(string day in days) { if(day==testDay) return i; i++; } return -1; } public int this[string day] { get{return (GetDay(day))} } } static void Main(string[] args) { DayCollection week=new DayCollection(); Console.WriteLine("Fri:{0}",week["Fri"]); Console.WriteLine("ABC:{0}",week["ABC"]); }
Ergebnis: Fr: 5
ABC:-1
3. Indexer in der Schnittstelle
kann dort auch den Index deklarieren Es gibt zwei Unterschiede zwischen dem Schnittstellenindexer und dem Klassenindexer:
Erstens verwendet der Schnittstellenindexer keine Modifikatoren;
Der zweite ist der Schnittstellenindex Der Container enthält nur den Accessor get oder set und keine Implementierungsanweisung.
Der Zweck des Accessors besteht darin, anzugeben, ob der Indexer schreibgeschützt, schreibgeschützt oder schreibgeschützt ist. Wenn es schreibgeschützt ist, erhält der Accessor oder set kann nicht gleichzeitig weggelassen werden; wenn es schreibgeschützt ist, lassen Sie den set-Accessor weg; wenn es schreibgeschützt ist, lassen Sie den get-Accessor weg.
Beispiel:
public interface IAddress { string this[int index]{get;set;} string Address{get;set;} string Answer(); }
gibt an, dass die deklarierte Schnittstelle IAddress drei Mitglieder enthält: einen Indexer, eine Eigenschaft und eine Methode, wobei der Indexer lesbar und beschreibbar ist.
4. Vergleich von Indexern und Attributen
Indexer und Attribute sind beide Mitglieder der Klasse und in der Syntax sehr ähnlich. Die Verwendung von Indexern zum Betreiben von Sammlungsobjekten ist im Allgemeinen so einfach wie die Verwendung von Array-Eigenschaften in jeder benutzerdefinierten Klasse, was die Flexibilität der Feldmitglieder der Klasse erhöht.
Mehr über Indexer in C# Für verwandte Artikel Für ein einfaches Verständnis und eine einfache Verwendung achten Sie bitte auf die chinesische PHP-Website!

Die Beziehung zwischen C# und .NET ist untrennbar miteinander verbunden, aber nicht dasselbe. C# ist eine Programmiersprache, während .NET eine Entwicklungsplattform ist. C# wird verwendet, um Code zu schreiben, in .NETs Intermediate Language (IL) zu kompilieren und von der .NET -Laufzeit (CLR) ausgeführt zu werden.

C#.NET ist immer noch wichtig, da es leistungsstarke Tools und Bibliotheken bietet, die mehrere Anwendungsentwicklung unterstützen. 1) C# kombiniert .NET Framework, um die Entwicklung effizient und bequem zu machen. 2) Mechanismus zum Typensicherheit und Müllsammlung von C#erhöht die Vorteile. 3) .NET bietet eine plattformübergreifende laufende Umgebung und eine reichhaltige APIs, wodurch die Flexibilität der Entwicklung verbessert wird.

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C# und .NET passen sich durch kontinuierliche Aktualisierungen und Optimierungen an die Bedürfnisse neuer Technologien an. 1) C# 9.0 und .NET5 Führen Sie den Datensatztyp und die Leistungsoptimierung ein. 2) .NETCORE verbessert die native und containerische Unterstützung von Cloud. 3) ASP.NetCore integriert sich in moderne Webtechnologien. 4) ML.NET unterstützt maschinelles Lernen und künstliche Intelligenz. 5) Asynchrone Programmierung und Best Practices verbessern die Leistung.

C#.NetissoBableFoREenterPrise-Level Applications-WithemicrosoftCosystemDuetoitsStrongtyPing, Richlibrary, Androbustperformance.

Der Programmierungsprozess von C# in .NET enthält die folgenden Schritte: 1) Schreiben von C# Code, 2) Kompilieren in eine mittlere Sprache (IL) und 3), die durch die .NET -Laufzeit (CLR) ausführt. Die Vorteile von C# in .NET sind die moderne Syntax, das leistungsstarke Typsystem und die enge Integration in das .NET -Framework, das für verschiedene Entwicklungsszenarien geeignet ist, von Desktop -Anwendungen bis hin zu Webdiensten.

C# ist eine moderne, objektorientierte Programmiersprache, die von Microsoft und als Teil des .NET-Frameworks entwickelt wurde. 1.C# unterstützt die objektorientierte Programmierung (OOP), einschließlich Einkapselung, Vererbung und Polymorphismus. 2. Asynchrones Programmieren in C# wird über Async implementiert und wartet auf Schlüsselwörter, um die Reaktionsfähigkeit der Anwendungen zu verbessern. 3.. Verwenden Sie LINQ, um Datensammlungen präzise zu verarbeiten. 4. Häufige Fehler umfassen Null-Referenzausnahmen und Indexausnahmen außerhalb des Bereichs. Zu den Debugging -Fähigkeiten gehört die Verwendung eines Debuggers und Ausnahmeberechnung. 5. Leistungsoptimierung umfasst die Verwendung von StringBuilder und das Vermeiden von unnötigem Packung und Unboxing.

Die Teststrategien für C#.NET-Anwendungen umfassen Unit-Tests, Integrationstests und End-to-End-Tests. 1. Unit -Test stellt sicher, dass die Mindesteinheit des Codes unter Verwendung des Frameworks MStest, Nunit oder Xunit unabhängig funktioniert. 2. Integrierte Tests überprüfen die Funktionen mehrerer Einheiten kombinierter, häufig verwendeten simulierten Daten und externen Diensten. 3. End-to-End-Tests simuliert den vollständigen Betriebsprozess des Benutzers, und Selen wird normalerweise für automatisierte Tests verwendet.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung