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

黄舟
Freigeben: 2017-02-10 15:13:53
Original
1406 Leute haben es durchsucht

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

Quelle: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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage