


Zusammenstellung von C#-Grundkenntnissen: C#-Klassen und -Strukturen (1)
1. Strukturelle und funktionale Eigenschaften? Code implementieren?
Strukturen werden mit dem Schlüsselwort struct definiert, das Klassen ähnelt, aber wesentliche Unterschiede aufweist. Die Struktur ist im Wesentlichen ein Werttyp und erfordert keine Zuweisung.
Eigenschaften der Struktur:
(1) Wenn die Struktur als Parameter übergeben wird, wird sie als Wert übergeben.
(2) Der Konstruktor der Struktur muss Parameter übernehmen.
(3). Die Strukturinstanziierung erfordert keine neue.
(4) Strukturen können nicht vererbt werden, Schnittstellen können jedoch implementiert werden.
(5). Instanzfelder können in der Struktur nicht initialisiert werden.
Beispiel:
using System; using System.Collections.Generic; using System.Text; namespace TestStruct { class Program { public struct Circle //定义一个圆 { private const double pi = 3.1415926; public double radius; //半径 /// <summary> /// 构造函数 /// </summary> public Circle(double r) { radius = r; } /// <summary> /// 面积 /// </summary> public double CArea() { return 3.14 * radius * radius; } } static void Main(string[] args) { Circle circle1; //不用new实例化 circle1.radius = 5; Console.WriteLine("圆面积为:" + circle1.CArea()); Circle circle2 = new Circle(1); //用new实例化 Console.WriteLine("圆面积为:" + circle2.CArea()); Console.ReadLine(); } } }
2. Was ist Delegation? Merkmale? Wann sollten Delegaten anstelle von Schnittstellen verwendet werden? Wie deklariere, instanziiere und verwende ich Delegaten?
(1) Ein Delegat ist eine Klasse, die den Typ einer Methode definiert. Eine Methode kann als Parameter einer anderen Methode verwendet werden. Vermeiden Sie die Verwendung von Verzweigungen in Ihrem Programm,
das Programm wird dadurch skalierbarer.
Beispiel:
class Program { public delegate void PrinteDelegate(string name); private static void PrinteEnglish(string name) { Console.WriteLine("Your Name: " + name); } private static void PrinteChinese(string name) { Console.WriteLine("你的大名: " + name); } private static void Printe(string name, PrinteDelegate MakeGreeting) { MakeGreeting(name); } static void Main(string[] args) { Printe("Sam Young", PrinteEnglish); Printe("白杨树", PrinteChinese); Console.ReadLine(); } }
(2) Ein Delegat ähnelt einem C++-Funktionszeiger, ist jedoch typsicher.
Delegierte ermöglichen die Übergabe von Methoden als Parameter.
Delegierte können zum Definieren von Rückrufmethoden verwendet werden.
Delegierte können miteinander verkettet werden; zum Beispiel können mehrere Methoden für ein Ereignis aufgerufen werden.
Methoden müssen nicht genau mit der Signatur des Delegierten übereinstimmen. Weitere Informationen finden Sie unter Kovarianz und Kontravarianz.
C# Version 2.0 führte das Konzept anonymer Methoden ein, die es ermöglichen, Codeblöcke als Argumente anstelle individuell definierter Methoden zu übergeben.
Verwenden Sie Delegaten. Ich denke, sie sollten verwendet werden, wenn Sie verzweigen müssen, um verschiedene Methoden aufzurufen. Aber zum Beispiel werden im Factory-Muster unterschiedliche Klassen
nach Branches instanziiert. In diesem Fall werden Schnittstellen verwendet.
Ein Delegat ist eine Klasse, die den Typ einer Methode definiert, sodass die Methode als Parameter einer anderen Methode übergeben werden kann. Dadurch wird die Methode dynamisch zugewiesen.
Die Methode, die angegeben wird Parameter können die Verwendung einer großen Anzahl von If-Else-Anweisungen (Switch) im Programm vermeiden und gleichzeitig das Programm skalierbarer machen.
3. Was ist eine Teilkategorie/Unterkategorie? Welche Funktionen? Code implementieren? Anwendbare Anlässe? Wie viele Regeln müssen beachtet werden?
Teilklasse bedeutet, das Schlüsselwort „Partial“ zu verwenden, um eine Klasse in mehrere unabhängige Dateien zu unterteilen, aber im Wesentlichen handelt es sich immer noch um eine Klasse. Wenn eine Klasse zu viele Zeilen hat oder einige Funktionen relativ unabhängig sind, können im Allgemeinen Teilklassen verwendet werden. Die häufigsten sind Form.cs und Form.designer.cs.Im Allgemeinen müssen die folgenden Regeln befolgt werden:
(1) Das Teilschlüsselwort muss verwendet werden
(2) Obwohl es verschiedene Teile gibt, muss jeder Teil die gleiche Zugänglichkeit haben, wie z öffentlich, privat usw.
(3), wenn ein Teil als abstrakt und versiegelt deklariert wird, gilt der gesamte Typ als abstrakt und versiegelt
(4), wenn ein Teil als erblich deklariert wird eine Basisklasse, der gesamte Typ erbt die Klasse
(5). Jeder Teil kann verschiedene Basisschnittstellen angeben, und der endgültige Typ implementiert alle in allen Teildeklarationen aufgeführten Schnittstellen
(6). ). Alle in einer Teildefinition deklarierten Klassen, Strukturen oder Schnittstellenmitglieder sind für alle anderen Teile verfügbar.
(7) Verschachtelte Typen können teilweise sein, auch wenn sie vorhanden sind verschachtelt ist selbst nicht partiell.
Das Obige ist das Grundwissen von C#: C#-Klassen und -Strukturen (1) Weitere verwandte Inhalte finden Sie auf 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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 zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

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 Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.
