Wenn ein Objekt einer Objektvariablen zugewiesen wird, führt der Compiler einen Prozess namens Bindung durch. C# führt zwei verschiedene Arten der Bindung durch: frühe Bindung und späte Bindung. Der folgende Artikel stellt Ihnen diese beiden Bindungen vor. Ich hoffe, er ist hilfreich für Sie.
Frühe Bindung
Frühe Bindung wird auch als statische Bindung bezeichnet, was sich auf die Bindung zur Kompilierungszeit bezieht Definiert sind früh gebundene Objekte grundsätzlich stark typisierte Objekte oder statisch typisierte Objekte. [Tutorial-Empfehlung: C#-Video-Tutorial]
Frühe Bindung identifiziert und überprüft Methoden, Eigenschaften und Funktionen während der Kompilierung und führt andere Optimierungen vor der Anwendungsausführung durch. In dieser Bindung weiß der Compiler bereits, um welche Art von Objekt es sich handelt und welche Methoden oder Eigenschaften es hat.
Vorteile der frühen Bindung
1. Schnelle Leistung
Einfach zu programmieren und zu entwickeln
3 Laufzeitfehler
Beispiel:
using System; class People { // data members public string name; public string subject; // public method public void details(string name, string subject) { this.name = name; this.subject = subject; Console.WriteLine("我的名字是: " + name); Console.WriteLine("我最喜欢的科目是: " + subject); } } class GFG { // Main 方法 static void Main(string[] args) { // 创建People类的对象 People g = new People(); // 调用People类的方法 g.details("Ankita", "C#"); // 调用“myMethod()”时出错 // 因为这个方法不属于People类,或者编译器在编译时不知道mymethod() g.mymethod(); } }
Beim Kompilieren sind Fehler aufgetreten:
Beschreibung:Im obigen Beispiel haben wir eine Klasse namens People. Diese Klasse enthält die Methode details(). Dabei kennt der Compiler bereits die Eigenschaften und Methoden, die in People vorhanden sind. Wenn wir jedoch versuchen, mymethod() aufzurufen, wird ein Fehler ausgegeben, da der Compiler diese Methode nicht kennt.
Späte Bindung
Die späte Bindung wird auch als dynamische Bindung bezeichnet. Bei der späten Bindung weiß der Compiler nicht, um welche Art von Objekt es sich handelt und welche Methoden oder Eigenschaften es besitzt. Hier ist das Objekt ein dynamisches Objekt. Der Typ eines Objekts wird anhand der Daten bestimmt, die es zur Laufzeit auf der rechten Seite enthält. Grundsätzlich wird die späte Bindung durch den Einsatz virtueller Methoden erreicht.
Der größte Vorteil der späten Bindung besteht darin, dass dieser Objekttyp einen Verweis auf jedes Objekt enthalten kann, ihm fehlen jedoch viele der Vorteile der frühen Bindung von Objekten. Beispiel: Die späte Bindung ist langsamer als die frühe Bindung, da Suchvorgänge zur Laufzeit erforderlich sind.
Beispiel:
using System; class GFG { static void Main() { // Dynamic objects dynamic obj = 4; dynamic obj1 = 5.678; // 显示对象的类型 Console.WriteLine("对象类型为:"); // 使用getType()方法来获取类型 Console.WriteLine(obj.GetType()); Console.WriteLine(obj1.GetType()); } }
Ausgabe:
Erklärung:
Im obigen Beispiel enthält obj Daten vom Typ Integer und obj1 Daten vom Typ Double. Der Compiler löst diese Probleme jedoch nicht zur Kompilierungszeit. Zur Laufzeit werden diese dynamischen Objekte erkannt und in System.Int32 bzw. System.Double konvertiert. Aus diesem Grund wird der Laufzeitauflösungsprozess als späte Bindung bezeichnet.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion der frühen Bindung und der späten Bindung in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!