Heim Backend-Entwicklung C#.Net-Tutorial Zusammenstellung von C#-Grundkenntnissen: C#-Klassen und -Strukturen (1)

Zusammenstellung von C#-Grundkenntnissen: C#-Klassen und -Strukturen (1)

Feb 10, 2017 pm 03:13 PM

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();
        }
    }
}
Nach dem Login kopieren

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();
        }
    }
Nach dem Login kopieren

(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)!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

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.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

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

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

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

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

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.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

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.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

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.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

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 asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

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.

See all articles