Wie funktionieren Arrays in C#?

WBOY
Freigeben: 2023-09-10 09:41:08
nach vorne
1252 Leute haben es durchsucht

数组在 C# 中如何工作?

Ein Array repräsentiert eine feste Anzahl von Elementen eines bestimmten Typs. Elemente werden in zusammenhängenden Speicherblöcken gespeichert und Sie können effizient auf Elemente zugreifen, solange Sie deren Index kennen.

Die C#-Syntax zum Deklarieren und Initialisieren eines Arrays lautet wie folgt:

// create a string array to hold 5 languages
string[] languages = new string[3];
Nach dem Login kopieren

Nach dem Deklarieren eines Arrays können Sie das Quadratsymbol im Array verwenden, um die Elemente im Array zu füllen.

languages[0] = "csharp";
languages[1] = "visual basic";
languages[2] = "f#";
Nach dem Login kopieren

Es ​​gibt jedoch eine alternative prägnante Syntax, die die beiden oben genannten Schritte in einem Schritt kombiniert.

string[] languages = new string[] { "csharp", "visual basic", "f#" };
Nach dem Login kopieren

Bei implizit typisierten Variablen in C# können Sie den Typ auf der linken Seite des Variablennamens entfernen und einfach var verwenden.

var languages = new string[] { "csharp", "visual basic", "f#" };
Nach dem Login kopieren

Sie können mit derselben quadratischen Notation auf jedes Element im Array zugreifen.

string language = languages[0];
Console.WriteLine(language); // prints csharp
Nach dem Login kopieren

Die Längeneigenschaft eines Arrays sagt uns, wie viele Elemente sich im Array befinden.

int count = languages.Length;
Console.WriteLine(count); // 3
Nach dem Login kopieren

Es ist wichtig zu bedenken, dass die Länge eines Arrays nach seiner Erstellung nicht mehr geändert werden kann. Der Versuch, auf ein Element außerhalb der Grenzen des Arrays zuzugreifen, löst eine Ausnahme aus.

string lang = languages[3]; // throws System.IndexOutOfRangeException
Nach dem Login kopieren

Wenn Sie eine Schleife über ein Array durchführen möchten, verwenden Sie die von der Sprache bereitgestellten for- oder foreach-Schleifen.

// for loop
for (int i = 0; i < languages.Length; i++){
   string l = languages[i];
   Console.WriteLine(l); // prints the names of languages in sequence
}
// foreach loop
foreach (string l in languages){
   Console.WriteLine(l); // prints the names of languages in sequence
}
Nach dem Login kopieren

Standardwerte

Wenn Sie ein Array erstellen, initialisiert der C#-Compiler die Elemente auf ihre Standardwerte. Wenn Sie beispielsweise ein Array mit Ganzzahlen erstellen, wird der Wert jedes Elements auf 0 gesetzt.

var numbers = new int[3];
foreach (int num in numbers){
   Console.WriteLine(num); // prints 000
}
Nach dem Login kopieren

Wenn ein Element einen Werttyp hat, wird jedem Mitglied dieses Typs sein Standardwert zugewiesen.

Point[] a = new Point[4];
int x = a[2].X;
Console.WriteLine(x); // prints 0
public struct Point { public int X, Y; }
Nach dem Login kopieren

Bei Referenztypen erstellt der Compiler jedoch nur Nullreferenzen für jedes Element.

User[] u = new User[4];
int y = u[2].Y; // NullReference exception
public class User { public int X, Y; }
Nach dem Login kopieren

Um diesen Fehler zu vermeiden, müssen Sie jedes Element wie unten gezeigt explizit initialisieren.

User[] users = new User[5];
for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999
users[i] = new User();
Nach dem Login kopieren

Beispiel

Echtzeitdemonstration

using System;
class Program{
   static void Main(){
      string[] languages = new string[3]; // create a string array to hold 5 languages
      languages[0] = "csharp";
      languages[1] = "visual basic";
      languages[2] = "f#";
      string[] langugages_two = new string[] { "csharp", "visual basic", "f#" };
      var languages_three = new string[] { "csharp", "visual basic", "f#" };
      string language = languages[0];
      Console.WriteLine(language); // prints csharp
      int count = languages.Length; // 3
      Console.WriteLine(count);
      //string lang = languages[3]; // throws System.IndexOutOfRangeException
      // for loop
      for (int i = 0; i < languages.Length; i++){
         string l = languages[i];
         Console.WriteLine(l); // prints the names of languages in sequence
      }
      // foreach loop
      foreach (string l in languages){
         Console.WriteLine(l); // prints the names of languages in sequence
      }
      var numbers = new int[3];
      foreach (int num in numbers){
         Console.WriteLine(num); // prints 000
      }
      Point[] a = new Point[4];
      int x = a[2].X;
      Console.WriteLine(x); // prints 0
      User[] u = new User[4];
      //int y = u[2].Y; // NullReference exception
      User[] users = new User[5];
      for (int i = 0; i <users.Length; i++) // Iterate i from 0 to 999
      users[i] = new User();
   }
}
public struct Point { public int X, Y; }
public class User { public int X, Y; }
Nach dem Login kopieren

Ausgabe

csharp
3
csharp
visual basic
f#
csharp
visual basic
f#
0
0
0
0
Nach dem Login kopieren

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

Quelle:tutorialspoint.com
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!