In diesem Artikel wird hauptsächlich der generische Delegat in c# vorgestellt. Es hat einen sehr guten Referenzwert. Schauen wir es uns mit dem Editor an.
Heute lernen wir etwas über generische Delegation in c#.
1. Allgemeiner Delegat, Delegate, kann Parameter übergeben (
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace delegateSummary { public delegate void GetIntDelegate(int a); //声明一个委托 public class getIntClass { public static void SetDelegateString(int a,GetIntDelegate getIntDelegate) {//使用委托 getIntDelegate(a); } public void getInt1(int a) { //方法1 Console.WriteLine("getInt1方法调用,参数为:" + a); } public void getInt2(int a) { //方法2 Console.WriteLine("getInt2方法调用,参数为:" + a); } } class Program { static void Main(string[] args) { getIntClass gc=new getIntClass(); getIntClass.SetDelegateString(5, gc.getInt1); //方法1,2作为委托的参数 getIntClass.SetDelegateString(10, gc.getInt2); Console.WriteLine("====================="); GetIntDelegate getIntDelegate; getIntDelegate = gc.getInt1; //将方法1,2绑定到委托 getIntDelegate += gc.getInt2; getIntClass.SetDelegateString(100, getIntDelegate); Console.Read(); } } }
Geben Sie das Ergebnis aus. Beachten Sie den Unterschied zwischen den beiden Methoden. Die erste Methode verwendet die Methode als Parameter des Delegaten und die zweite Methode bindet die Methode an den Delegaten.
2. Der generische Delegat Aktion kann bis zu 16 Parameter übergeben und hat keinen Rückgabewert.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace delegateSummary { class Program { static void Main(string[] args) { TestAction<string>(getString, "WhiteTaken"); //传入方法 TestAction<int>(getInt, 666); TestAction<int, string>(getStringAndInt, 666, "WhiteTaken"); Console.Read(); } public static void TestAction<T>(Action<T> action,T p1) { //Action传入一个参数测试 action(p1); } public static void TestAction<T, P>(Action<T, P> action, T p1, P p2) { //Action传入两个参数测试 action(p1,p2); } public static void getString(string a) { //实现int类型打印 Console.WriteLine("测试Action,传入string,并且传入的参数为:" +a); } public static void getInt(int a) { //实现String类型打印 Console.WriteLine("测试Action,传入int,并且传入的参数为:" + a); } public static void getStringAndInt(int a, string name) { //实现int+string类型打印 Console.WriteLine("测试Action,传入两参数,并且传入的参数为:" + a+":"+name); } } }
Testergebnisse:
3. Der generische Delegat Func kann bis zu 16 Parameter und Rückgabewerte übergeben. (Die Schreibmethode ähnelt Action, jedoch mit einem zusätzlichen Rückgabewert)
4 Das Prädikat des generischen Delegaten (nicht sehr häufig verwendet), der Rückgabewert ist bool, verwendet in ArraySuchen Sie nach -Elementen in und Liste. (Ich habe es noch nicht verwendet, ich werde es aktualisieren, wenn ich es verwende)
Das obige ist der detaillierte Inhalt vonBeispielcode-Freigabe für generische Delegation in C# (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

C# und .NET bieten leistungsstarke Funktionen und eine effiziente Entwicklungsumgebung. 1) C# ist eine moderne, objektorientierte Programmiersprache, die die Kraft von C und die Einfachheit von Java kombiniert. 2) Das .NET -Framework ist eine Plattform zum Erstellen und Ausführen von Anwendungen und unterstützt mehrere Programmiersprachen. 3) Klassen und Objekte in C# sind der Kern der objektorientierten Programmierung. Klassen definieren Daten und Verhalten, und Objekte sind Instanzen von Klassen. 4) Der Müllsammlungsmechanismus von .NET verwaltet automatisch Speicher, um die Arbeit der Entwickler zu vereinfachen. 5) C# und .NET liefern leistungsstarke Dateibetriebsfunktionen, die synchrone und asynchrone Programmierungen unterstützen. 6) Häufige Fehler können durch Debugger, Protokollierung und Ausnahmebehandlung gelöst werden. 7) Leistungsoptimierung und Best Practices umfassen die Verwendung von StringBuild

.NetFramework ist eine plattformübergreifende, plattformübergreifende Entwicklungsplattform, die ein konsistentes Programmiermodell und eine leistungsstarke Laufzeitumgebung bietet. 1) Es besteht aus CLR und FCL, die Speicher und Threads verwalten, und FCL bietet vorgefertigte Funktionen. 2) Beispiele für die Nutzung sind das Lesen von Dateien und LINQ -Abfragen. 3) Häufige Fehler beinhalten unbehandelte Ausnahmen und Speicherlecks und müssen mit Debugging -Tools gelöst werden. 4) Die Leistungsoptimierung kann durch asynchrones Programmieren und Caching erreicht werden, und die Aufrechterhaltung der Code -Lesbarkeit und -wartbarkeit ist der Schlüssel.

Gründe für C#.NET, die dauerhaft attraktiv bleiben, sind seine hervorragende Leistung, das reiche Ökosystem, die starken Unterstützung der Community und die plattformübergreifenden Entwicklungsfunktionen. 1) ausgezeichnete Leistung und eignet sich für Anwendungen auf Unternehmensebene und Spieleentwicklung. 2) Das .NET -Framework bietet eine breite Palette von Klassenbibliotheken und Tools, um eine Vielzahl von Entwicklungsfeldern zu unterstützen. 3) Es verfügt über eine aktive Entwicklergemeinschaft und eine reiche Lernressourcen. 4) .NetCore realisiert die plattformübergreifende Entwicklung und erweitert die Anwendungsszenarien.

Entwurfsmuster in C#.NET umfassen Singleton -Muster und Abhängigkeitsinjektion. 1.Singleton -Modus stellt sicher, dass nur eine Instanz der Klasse vorhanden ist, die für Szenarien geeignet ist, in denen globale Zugriffspunkte erforderlich sind. Es sollte jedoch Aufmerksamkeit auf die Sicherheit von Threads und Missbrauch geschenkt werden. 2. Die Abhängigkeitsinjektion verbessert die Code -Flexibilität und -Testabilität durch Injektion von Abhängigkeiten. Es wird häufig für die Konstruktorinjektion verwendet, es ist jedoch erforderlich, übermäßigen Gebrauch zu vermeiden, um die Komplexität zu erhöhen.

C#.NET wird in der modernen Welt in den Bereichen Spieleentwicklung, Finanzdienstleistungen, Internet der Dinge und Cloud Computing häufig eingesetzt. 1) Verwenden Sie in der Spielentwicklung C#, um über die Unity Engine zu programmieren. 2) Im Bereich Finanzdienstleistungen wird C#.NET verwendet, um Hochleistungshandelssysteme und Datenanalyse-Tools zu entwickeln. 3) In Bezug auf IoT und Cloud Computing unterstützt C#.NET Unterstützung durch Azure -Dienste zur Entwicklung der Gerätesteuerungslogik und der Datenverarbeitung.

.NETFRAMEWORKISWINDOWS-zentriert, while.Netcore/5/6SupportScross-Plattformdevelopment.1) .NETFRAMEWORK, SEber2002, ISIdeAlforwindowsApplicationsButlimitedIncross-PlatformCaps.2) .NETCORE, VORTEMANCE, MITTEILAGE und SITSEVOLUTUTIONS (.NETSVOLUTTATURE (.NETSVOLDS (.NETSVOLUTTIONS (.NETSVOLUTTION) (.NETSVOLUTTIONS (.NOLUTTUMS (.

Die C#.NET Developer Community bietet umfangreiche Ressourcen und Unterstützung, einschließlich: 1. Microsoft offizielle Dokumente, 2. Community -Foren wie Stackoverflow und Reddit sowie 3. Open -Source -Projekte auf GitHub. Diese Ressourcen helfen Entwicklern, ihre Programmierkenntnisse vom grundlegenden Lernen bis hin zu erweiterten Anwendungen zu verbessern.

Die Vorteile von C#.NET umfassen: 1) Sprachmerkmale wie asynchrone Programmierungen vereinfachen die Entwicklung; 2) Leistung und Zuverlässigkeit, Verbesserung der Effizienz durch JIT -Kompilierung und Mülleimermechanismen; 3) cross-plattform-Unterstützung, .Netcore erweitert die Anwendungsszenarien; 4) Eine breite Palette praktischer Anwendungen mit hervorragender Leistung vom Web bis zum Desktop und der Spieleentwicklung.


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

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.
