


Zusammenstellung von C#-Grundkenntnissen: C#-Klassen und -Strukturen (2)
1. Was ist ein Konstruktor? Welche Konstrukteure gibt es? Was sind die Definitionen, Implementierungsmethoden und Vorsichtsmaßnahmen der einzelnen Konstruktoren?
Der sogenannte Konstruktor ist eine Methode, die das Objekt initialisieren kann. Das heißt, nach dem Ausführen dieser Funktion wird im Speicher immer ein Platz für Objekte dieser Klasse geöffnet. Es gibt drei Typen: normale Konstruktoren, d. h. Instanziierungskonstruktoren; private statische Konstruktoren.
Instantiierungskonstruktor:
public class Example { private string property1 = string.Empty; private string property2 = @"hello"; private int property3 = 0; public Example()//成员都是声明时的初始值,这种默认的构造器,也可以不写。 { } public Example(string p1, string p2, int p3)//传入的值初始化 { this.property1 = p1; this.property2 = p2; this.property3 = p3; } }
Privater Konstruktor:
Der private Konstruktor ist von außen nicht zugänglich. Informationen zur Instanziierung finden Sie im Singleton-Modus. Hier wird privat verwendet. Konstruktor:
http://www.php.cn/
Statischer Konstruktor:
Sehen Sie sich zuerst das Beispiel an:
public class StaticConstruct { static StaticConstruct() { Console.WriteLine(@"静态构造函数"); } public StaticConstruct() { Console.WriteLine(@"实例化构造函数"); } public StaticConstruct(string flage) { Console.WriteLine(@"带参构造函数"); } } class Program { static void Main(string[] args) { StaticConstruct strc = new StaticConstruct(); StaticConstruct strcValue = new StaticConstruct(string.Empty); Console.ReadLine(); } }
Ergebnis:
Merkmale des statischen Konstruktors: Zugriffsmodifikatoren sind in statischen Konstruktoren nicht zulässig. Beim Instanziieren wird der statische Konstruktor automatisch zuerst aufgerufen. Dies bedeutet, dass der Aufruf des statischen Konstruktors ein unkontrollierbarer Parameter ist und es nur einen in einer Klasse gibt ; es kann nicht vererbt werden.
2. Wofür werden dieses Schlüsselwort und das Basisschlüsselwort verwendet? Code implementieren?
(1), dieses Schlüsselwort:
Dies bezieht sich, wie der Name schon sagt, auf die Bedeutung in dieser Klasse und bezieht sich auf die Mitglieder der aktuellen Klasse. Wenn das Programm ausgeführt wird, kann man natürlich genau sagen, dass es sich auf das Mitglied des Objekts der aktuellen Klasse bezieht und seine Funktion darin besteht, das Objekt zu unterscheiden. Weil eine Klasse N Objekte haben kann. Das Schlüsselwort this kann jedoch nicht in der statischen Klasse verwendet werden, da es für static nicht möglich ist, mehrere Objekte zu instanziieren. Es besteht natürlich keine Notwendigkeit, dies zur Unterscheidung von Objekten zu verwenden. Im Allgemeinen werden folgende verwendet:
a. Variablen mit demselben Namen in Methoden oder Konstruktoren.
public class MyTestA { private string testA = string.Empty; public MyTestA(string testA) { this.testA = testA; } public void Handler(string testA) { this.testA = testA; } }
b. Get- und Set-Methoden
public class MyTestB { private string testB = string.Empty; public string TestB { get { return this.testB; } set { this.testB = value; } } }
c. Übergeben Sie die Instanz
Zum Beispiel im Ereignis
public class MyTestC { public event EventHandler OnTestCEvent = null; private void Send_OntestEvent(object sender,EventArgs e) { if (OnTestCEvent != null) { OnTestCEvent(sender, e); } } private void TestEvent() { Send_OntestEvent(this, null); } } public class MyTestD { MyTestC testC = new MyTestC(); public event EventHandler OnTestDEvent = null; private void Send_OnTestDEvent(object sender, EventArgs e) { if (OnTestDEvent != null) { OnTestDEvent(sender, e); } } public MyTestD() { testC.OnTestCEvent += new EventHandler(testC_OnTestEvent); } void testC_OnTestEvent(object sender, EventArgs e) { Send_OnTestDEvent(sender, e); } } public class MyTestE { MyTestD testD = new MyTestD(); public MyTestE() { this.testD.OnTestDEvent += new EventHandler(testD_OnTestDEvent); } void testD_OnTestDEvent(object sender, EventArgs e) { MyTestC testC = sender as MyTestC;//通过MytestD将对象转了过来 if (testC != null) { //代码 } } }
(2) Basisschlüsselwort:
wird im Allgemeinen für Unterklassen verwendet, um auf übergeordnete Klassen zuzugreifen.
Eine davon ist, dass beim Überschreiben der Methode der übergeordneten Klasse
public class ParentClass { public virtual void MethodA() { Console.WriteLine(@"基类的方法"); } } public class ChildClass : ParentClass { public override void MethodA() { base.MethodA(); Console.WriteLine("派生类方法"); } }
Die andere darin besteht, dass die Unterklasse den Konstruktor der übergeordneten Klasse aufruft,
public class ParentClass { public ParentClass(string flage) { Console.WriteLine(@"基类构造函数"); } public virtual void MethodA() { Console.WriteLine(@"基类的方法"); } } public class ChildClass : ParentClass { public ChildClass(string flage) : base(flage) { } public override void MethodA() { base.MethodA(); Console.WriteLine("派生类方法"); } }
3. Was ist Ist es ein Spiegelbild? Wie setzt man Reflexion um? Welche Vor- und Nachteile hat die Reflexion? Wann sollte Reflexion eingesetzt werden?
http://blog.csdn.net/yysyangyangyangshan/article/details/7028589
Das Obige ist das Grundwissen von C#: C#-Klasse und -Struktur (2). 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.
