Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Typ, mit dem Sie einen benutzerdefinierten Delegattyp für Ihre eigenen Ereignisse deklarieren können. delegate supports any number of parameters, and they are not limited to Windows Runtime types.
The delegate type has no ABI (it has no interface for use across application binaries), so its use case is when you're both authoring and consuming an event within the same project. Weitere Informationen zu diesem Szenario finden Sie unter Parametrisierte Stellvertretungen, einfache Signale und Rückrufe innerhalb eines Projekts.
Weitere Informationen zum Behandeln von Ereignissen und Codebeispielen finden Sie unter Behandeln von Ereignissen mithilfe von Delegaten in C++/WinRT.
Syntax
template <typename... T>
struct delegate : Windows::Foundation::IUnknown
Template parameters
typename... T Ein variadisches Vorlagenparameterpaket mit den Typen der Parameter, die der Delegat übergeben wird, wenn er aufgerufen wird.
Requirements
Mindestens unterstütztes SDK: Windows SDK-Version 10.0.17134.0 (Windows 10, Version 1803)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (included by default)
Constructors
| Constructor | Description |
|---|---|
| delegate::delegate constructor | Initializes a new instance of the delegate struct from the input data. |
Member operators
| Operator | Description |
|---|---|
| delegate::operator() (Funktionsaufrufoperator) | Invokes the delegate represented by the delegate object with the provided arguments. |
delegate::delegate constructor
Initializes a new instance of the delegate struct from the input data.
Syntax
delegate(std::nullptr_t = nullptr) noexcept; // (1)
template <typename L>
delegate(L lHandler); // (2)
template <typename F>
delegate(F* fHandler); // (3)
template <typename O, typename M>
delegate(O* object, M method); // (4)
template <typename O, typename M>
delegate(winrt::com_ptr<O>&& object, M method); // (5)
template <typename O, typename M>
delegate(winrt::weak_ref<O>&& object, M method); // (6)
template <typename O, typename M>
delegate(winrt::weak_ref<O>&& object, L lHandler); // (7)
template <typename O, typename M>
delegate(std::shared_ptr<O>&& object, M method); // (8)
template <typename O, typename M>
delegate(std::weak_ptr<O>&& object, M method); // (9)
template <typename O, typename M>
delegate(std::weak_ptr<O>&& object, L lHandler); // (10)
Template parameters
typename L Ein Lambda-Typ oder allgemeiner jeder Typ, der Funktionsaufrufssyntax unterstützt, z. B. ein std::function.
typename F Ein kostenloser Funktionstyp.
typename O Ein Objekttyp.
typename M Ein Zeiger-zu-Member-Funktionstyp.
Parameters
lHandler Ein Lambda-Objekt oder allgemeiner ein Objekt, das funktionsaufrufsyntax unterstützt, z. B. ein std::functionLambda-Objekt, das das Ereignis behandelt.
fHandler Eine Zeiger-auf-Frei-Funktion, die das Ereignis behandelt.
object Ein Objekt, dessen Memberfunktionen das Ereignis behandeln.
Je nach Überladung kann dieses Objekt durch einen unformatierten Zeiger oder einen intelligenten Zeiger dargestellt werden.
method Eine Zeiger-zu-Member-Funktion, die das Ereignis behandelt.
Remarks
Der Standardkonstruktor (1) erstellt einen leeren Delegaten.
Konstruktor (2) erstellt einen Delegaten, der die Lambda-Funktion mit den Stellvertretungsargumenten aufruft.
Konstruktor (3) erstellt einen Delegaten, der die Funktion mit den Stellvertretungsargumenten aufruft.
Konstruktor (4) erstellt einen Delegaten, der die Methode des verweisenden Objekts mit den Stellvertretungsargumenten aufruft.
Konstruktor (5) erstellt einen Delegaten, der die Methode des referenzierten Objekts mit den Stellvertretungsargumenten aufruft.
Konstruktor (6) erstellt einen Delegaten, der versucht, den weak_ref Verweis auf einen starken Verweis aufzulösen.
Bei erfolgreicher Ausführung ruft sie die Methode des Objekts mit den Stellvertretungsargumenten auf; andernfalls tut es nichts.
Konstruktor (7) erstellt einen Delegaten, der versucht, den weak_ref Verweis auf einen starken Verweis aufzulösen.
Bei erfolgreicher Ausführung ruft sie die Lambda-Funktion mit den Stellvertretungsargumenten auf; andernfalls tut es nichts.
Erfordert C++/WinRT, Version 2.0.240111.5.
Konstruktor (8) erstellt einen Delegaten, der die Methode des freigegebenen Objekts mit den Stellvertretungsargumenten aufruft. Erfordert C++/WinRT, Version 2.0.240111.5.
Konstruktor (9) erstellt einen Delegaten, der versucht, den weak_ptr gemeinsam genutzten Zeiger aufzulösen.
Bei erfolgreicher Ausführung ruft sie die Methode des freigegebenen Objekts mit den Stellvertretungsargumenten auf; andernfalls tut es nichts.
Erfordert C++/WinRT, Version 2.0.240111.5.
Der Konstruktor (10) erstellt einen Delegaten, der versucht, den weak_ptr Zeiger in einen freigegebenen Zeiger aufzulösen.
Bei erfolgreicher Ausführung ruft sie die Lambda-Funktion mit den Stellvertretungsargumenten auf; andernfalls tut es nichts.
Erfordert C++/WinRT, Version 2.0.240111.5.
delegate::operator() (Funktionsaufrufoperator)
Invokes the delegate represented by the delegate object with the provided arguments.
Syntax
void operator()(T const&... args) const