


C#-Schwierigkeiten werden nacheinander gelöst (1): Ref-Parameterübergabe
Im Allgemeinen werden die Parameter einer Methode als Wert übergeben, d. h. ein Objekt wird als Parameter an die Methode übergeben und das Objekt wird im Speicherbereich des Zeigers gespeichert, in dem sich das Parameterobjekt befindet (beschrieben in C), das heißt, das Objekt erstellt an dieser Stelle eine Kopie, und wenn die Methode endet, wird die Kopie zerstört. Die Verwendung dieser Übertragungsmethode macht die überwiegende Mehrheit der täglichen Methodenparameterübertragungen aus.
Eine weitere Situation ist die Referenzübergabe, die sich von der Wertübergabe unterscheidet. Wenn das Objekt an eine Methode übergeben wird, hat es keine Auswirkung auf die Methodenparameter. Es wird jedoch die Methode zurückgegeben, die vom ursprünglichen Parameterwert beeinflusst wird Das heißt, MethodInstance(ref _refValue) ruft die Methode Method(ref _arg) auf, aber _refValue hat keine Auswirkung auf Method und das von _arg beeinflusste Ergebnis wird weiterhin zurückgegeben. Es ist auch denkbar, dass _arg vor der Verwendung zugewiesen werden muss.
Beispiel:
Ein weiterer Fall ist die Übergabe per Referenz, die sich von der Übergabe per Wert unterscheidet. Wenn das Objekt an die Methode übergeben wird, hat es keine Auswirkung auf die Methodenparameter Die zurückgegebene Methode ist der Wert des ursprünglichen Parameters, d. h. MethodInstance(ref _refValue) ruft die Methode Method(ref _arg) auf, aber _refValue hat keine Auswirkung auf Method und das von _arg betroffene Ergebnis wird weiterhin zurückgegeben. Es ist auch denkbar, dass _arg vor der Verwendung zugewiesen werden muss.
Beispiel:
using System; /****************************** * Chapter:C#难点逐个击破(一) * Author:王洪剑 * Date:2010-1-11 * Blog:http://www.51obj.cn/ * Email:walkingp@126.com * Description:重点讲解值传递方式与引用传递方式 * ***************************/ namespace Wang.TestRef { public class NormalClass { public void ShowNormalResult(string name) { name = "Wang Hongjian"; Console.WriteLine(name); } } public class RefClass { /// <summary> /// 引用类型ref类 /// </summary> /// <param name="name"></param> public void ShowRefResult(ref string name) { name = "Wang Hongjian"; Console.WriteLine(name); } } class Program { static void Main(string[] args) { string _name = "Zhou Runfa";//传递参数 #region 值传递参数方式 NormalClass n = new NormalClass(); n.ShowNormalResult(_name);//正常调用 #endregion #region 引用传递参数方式 RefClass o = new RefClass(); o.ShowRefResult(ref _name);//结果仍然为引用传递参数 Console.ReadKey(); #endregion } } }
Laufergebnis:
Die oben genannten sind die C#-Schwierigkeiten Nacheinander zu überwinden (1): Der vom Ref-Parameter übergebene Inhalt. 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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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 zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

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.

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.
