Die Anleitung zu C# Structure
View more Tutorials:
Im C# ist Struct (die Struktur) eine besondere Wert. Er erstellt eine Variable um viele einzelnen aber relativ mit einander Wert zu speichern.
Ein Beispiel: Die Information über ein Arbeitnehmer schließt ein:
- Die Code des Arbeitnehmer
- Der Name des Arbeitnehmer
- Die Funktion
Sie können 3 Variable erstellen um die Information des Arbeitnehmer zu speichern. Aber Sie können ein Struct erstellen um alle 3 oben gemeinten Information in einer einzigen Variable zu speichern.
C# benutzt das Schlüsselwort struct um ein Struct anzumelden
Employee.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpStructureTutorial { struct Employee { public string empNumber; public string empName; public string position; public Employee(string empNumber, string empName, string position) { this.empNumber = empNumber; this.empName = empName; this.position = position; } } }
Das Beispiel über die Benutzung von Struct:
EmployeeTest.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpStructureTutorial { class EmployeeTest { public static void Main(string[] args) { Employee john = new Employee("E01","John", "CLERK"); Console.WriteLine("Emp Number: " + john.empNumber); Console.WriteLine("Emp Name: " + john.empName); Console.WriteLine("Emp Position: " + john.position); Console.Read(); } } }
Das Beispiel durchführen:

Struct ist normalerweise benutzt für die Erstellung eines Objekt zur Speicherung der Wert, inszwischen werden die Klasse mehr umfangreich verwendet
- Struct darf kein Inheritance haben. Sie kann aus einer Klasse oder ein Struct nicht ausweitern.
- Struct darf die Interface implementieren (implements)
Ein der üblichen Struct im C# ist DateTime. Er bezeichnet das Datum und die Zeit. Sie können das Datum und die Zeit im C# mehr sehen bei ...:
Wenn Struct wie einen Parameter in einer Methode erscheint, wird er als eine Wert übertragen. Indem wenn die Klasse wie einen Parameter in einer Methode erscheint, wird er als Reference übertragen

MyClass.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpStructureTutorial { class MyClass { public string name = "Abc"; public MyClass(string name) { this.name = name; } } }
MyStruct.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpStructureTutorial { struct MyStruct { public string name; public MyStruct(string name) { this.name = name; } } }
MyTest.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpStructureTutorial { class MyTest { private static void passToMe(MyClass myClass, MyStruct myStruct) { // Die Wert des Feld name ändern. myClass.name = "New Name"; // Die Wert des Feld name ändern. myStruct.name = "New Name"; } public static void Main(string[] args) { MyClass myClass = new MyClass("Abc"); MyStruct myStruct = new MyStruct("Abc"); Console.WriteLine("Before pass to method"); Console.WriteLine("myClass.name = " + myClass.name);// Abc Console.WriteLine("myStruct.name = " + myStruct.name);// Abc Console.WriteLine("Pass to method"); // 'myStruct', das in der Methode übertragen, ist eine Kopie. // (Das ist kein originales Objekt). passToMe(myClass, myStruct); Console.WriteLine("myClass.name = " + myClass.name); // New Name Console.WriteLine("myStruct.name = " + myStruct.name);// Abc Console.Read(); } } }
Das Beispiel durchführen

Struct kann die Constructor haben aber hat kein Destructor.
Unten sind einige Beachtung mit dem Constructor:
- Sie können ein Default Constructor (ohne den Paramter) für Struct nicht schreiben.
- Im Constructor sollen Sie die Werte für alle Field der Struct zuweisen

Struct kann die Methode und Eigenschaften (Property) haben. Und weil Struct kein Inheritance hat, müssen seine Property nicht abstrakt (abstract) sein
Book.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpStructureTutorial { struct Book { private string title; private string author; // Property public string Title { get { return this.title; } set { this.title = value; } } // Property public string Author { get { return this.author; } } // Constructor. public Book(string title, string author) { this.title = title; this.author = author; } // Method. public string GetInfo() { return "Book Title: " + this.title + ", Author: " + this.author; } } }
Struct kann Indexer und Event haben. Sie können mehr über Indexer und Event bei... sehen: