SUNWEN-Tutorial – C# Advanced (7)
Wovon ich spreche, ist die Struktur (Struktur) in C#. Beachten Sie, dass sich die Struktur, über die ich hier spreche, nicht auf die Sprachstruktur von C# bezieht Klasse. Im Folgenden werde ich über diese Struktur sprechen.
Das folgende Beispiel beschreibt, wie man eine Struktur mit Attributen, Methoden und einem Feld erstellt und wie man sie verwendet.
000 : // Structsstruct1.cs
001: using System;
002: struct SimpleStruct
003: {
004: PRivate int xval;
005: public int X
006 : {
007: get {
008: return xval;
009: }
010: set {
011: if (value < 100)
012: xval = value ;
013: }
014: }
015: public void DisplayX()
016: {
017: Console.WriteLine("Der gespeicherte Wert ist: {0}", xval );
018: }
019: }
020:
021: Klasse TestClass
022: {
023: public static void Main()
024: {
025: SimpleStruct ss = new SimpleStruct();
026: ss Die Ausgabe dieses Beispiels ist:
Der gespeicherte Wert ist: 5
Aus dem obigen Beispiel können wir sehen, dass Strukturen Und Klassen scheinen tatsächlich gleich zu sein. Wenn Sie Klassen zum Umschreiben dieses Programms verwenden, ist das Ergebnis jedoch offensichtlich, dass zwei identische Dinge nicht zusammen auftreten können Die Klasse ist vom Referenztyp. Auf diese Weise können Sie die Struktur verwenden, um Objekte wie integrierte Typen zu erstellen. Wenn Sie ein neues Schlüsselwort verwenden, um eine Instanz einer Klasse zu erstellen, wird diese zugewiesen Der Heap wird verwendet, um eine Instanz einer Klasse zu erstellen. Wenn eine Instanz einer Struktur zugewiesen wird, wird sie unsere Leistung erheblich verbessern (wie M$ sagte). Nochmals folgendes Beispiel:
001: using System;
002:
004: {
005: public int x;006: }
007:
008: struct TheStruct
009: {
010: public int x;
011: }
012:
013: Klasse TestClass
014: {
015: public static void structtaker(TheStruct s)
016: {
017: s.x = 5;
018: }
019: public static void classtaker(TheClass c)
020: {
021: c.x = 5;
022: }
023: public static void Main()
024: {
025: TheStruct a = new TheStruct();
026: TheClass b = new TheClass();
027: a.x = 1;
028: b.x = 1;
029: structtaker(a );
030: classtaker(b);
031: Console.WriteLine("a.x = {0}", a.x);
032: Console.WriteLine("b.x = {0}", b.x );
033: }
034 : }
Die Ausgabe dieses Beispiels ist:
a.x = 1b.x = 5
Wie aus diesem Beispiel ersichtlich ist , wenn eine Struktur an eine Methode übergeben wird, wird sie nur als Kopie übergeben, und wenn eine Klasse übergeben wird, wird ihr eine Referenz übergeben, also gibt a.x= unverändert 1 aus, aber b.x hat sich geändert Der andere Unterschied ist die Struktur. Sie können ohne new instanziieren, aber Klassen tun dies. Wenn Sie eine Struktur ohne new instanziieren, bleiben alle Felder nicht zugewiesen. Wie Klassen können Strukturen Schnittstellen implementieren haben keine Vererbung. Eine Struktur kann nicht von anderen Klassen erben und kann auch nicht die Basisklasse anderer Klassen sein.
Beispiel 3:
interface IImage
{void Paint( );
}
struct Picture : IImage
{public void Paint()
{// Malcode kommt hier
}
private int x, y, z; // andere Strukturmitglieder
}
Das Obige ist der Inhalt des SUNWEN-Tutorials – C# Advanced (7), bitte beachten Sie weitere verwandte Inhalte der chinesischen PHP-Website (www.php .cn)!

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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Leitfaden für C# StringWriter. Hier besprechen wir einen kurzen Überblick über die C#-StringWriter-Klasse und ihre Funktionsweise zusammen mit verschiedenen Beispielen und Codes.

Leitfaden zu Webdiensten in C#. Hier besprechen wir eine Einführung in Webdienste in C# mit Technologienutzung, Einschränkungen und Beispielen.
