 |
 |
|
Delegierte in C#. Netz:
|
|
Wenn wir C++ betrachten, gibt es eine Eigenschaft, die Wiederholungsbesuch Funktion genannt wird. Diese Eigenschaft benutzt Zeiger zu den Funktionen, um sie als Parameter zu anderen Funktionen zu führen. Delegierter ist eine ähnliche Eigenschaft, aber es ist mehr Art Safe, die da ein steifer Kontrast mit C++ Funktion Zeigern steht. Ein Delegierter kann reference/s bis eins halten mehr Funktionen und sie wie und wann erforderliches hervorrufen.
|
|
Ein Delegierter benötigt der den Namen und seine Parameter Methode (Eingang und Zustandsgrößen) wenn wir einen Delegierten herstellen. Aber Delegierter ist nicht ein alleinstehender Aufbau. es ist eine Kategorie. Jeder möglicher Delegierte wird von der niedrigen Delegiertkategorie der .NET Kategorie Bibliothek übernommen, wenn es erklärt wird. Dieses kann von den zwei Kategorien von System.Delegate oder vom System sein entweder. MulticastDelegate.
|
|
Wenn der Delegierte eine Rückholart Lücke enthält, dann ist sie aliased automatisch zur Art von System.MulticastDelegate. Dieses kann mehrfache Funktionen mit einem += Operator stützen. Wenn der Delegierte eine nicht-leere Rückholart dann enthält, ist sie aliased zum System. Delegiertkategorie und -sie können nicht mehrfache Methoden stützen.
|
| Uns einen Blick am folgenden Beispielcode haben lassen.
|
class Figure
{
public Figure(float a, float b, float c)
{
m_xPos = a;
m_yPos = b;
m_zPos = c;
}
public void InvertX()
{
m_xPos = - m_xPos;
}
public void InvertY()
{
m_yPos = - m_yPos;
}
public void InvertZ()
{
m_zPos = - m_zPos;
}
private float m_xPos = 0;
private float m_yPos = 0;
private float m_zPos = 0;
}
|
|
|
Jetzt haben wir eine Kategorie, die Figure genannt wird und sie hat drei privat auffängt diesen Gebrauch, Position und drei Methoden zu speichern, um diese Position durch jede Mittellinie umzukehren. In der Hauptkategorie erklären wir Delegierten, wie folgt:
|
|
public delegate void FigureDelegate();
|
|
|
Und jetzt in der Hauptfunktion sollten wir sie verwenden mögen dieses:
|
Figure figure = new Figure(10,20,30);
FigureDelegate fx = new FigureDelegate(figure.InvertX);
FigureDelegate fy = new FigureDelegate(figure.InvertY);
FigureDelegate fz = new FigureDelegate(figure.InvertZ);
MulticastDelegate f_del = fx+fy+fz;
|
|
|
In diesem Beispiel verursachen wir drei Delegierte FigureDelegate Art und bringen zu diesen Elementen unsere drei Methoden von der Abbildung Kategorie an. Jetzt hält jeder Delegierte die Adresse der angebrachten Funktion. Die letzte Linie des Codes ist sehr interessant, hier stellen wir einen Delegierten der niedrigen Art (MulticastDelegate) her und bringen drei unserer bereits hergestellten Delegierten an. Während alle unsere Methoden von der Lücke Rückkehrart sind, sind sie automatisch von der Art MutlticastDelegate und ein MulticastDelegate kann mehrfache Methoden Anforderung auch stützen. Folglich können wir schreiben
|
Figure figure = new Figure(10,20,30);
FigureDelegate fMulti = new FigureDelegate(figure.InvertX);
fMulti += new FigureDelegate(figure.InvertY);
fMulti();
|
|
 |
 |
SchlüsselwortDelegierte in C#. Netz, c# c++, c# dotnet, c# Art, c# datagrid, c# Gegenstand, Delegierte vb, c# Wert, Sichtc#, c# Methode, c# Steuerung, c# Beispiel, vb c#, System c#, c# Anwendung, c# Probe, c# Projekt, c# Form, Bekehrter c#, csharp c#, kundenspezifisches c#, addieren c#, c# verursachen
|