Bagikan melalui


winrt::d elegate struct template (C++/WinRT)

Jenis yang dapat Anda gunakan untuk mendeklarasikan jenis delegasi kustom untuk peristiwa Anda sendiri. 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. Untuk detail selengkapnya tentang skenario tersebut, lihat Delegasi berparameter, sinyal sederhana, dan panggilan balik dalam proyek.

Untuk informasi selengkapnya tentang menangani peristiwa, dan contoh kode, lihat Menangani peristiwa dengan menggunakan delegasi di C++/WinRT.

Syntax

template <typename... T>
struct delegate : Windows::Foundation::IUnknown

Template parameters

typename... T Paket parameter templat variadik yang berisi jenis parameter yang diteruskan delegasi saat dipanggil.

Requirements

SDK minimum yang didukung: Windows SDK versi 10.0.17134.0 (Windows 10, versi 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
delegasi::operator() (operator panggilan fungsi) 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 Jenis lambda, atau lebih umumnya, jenis apa pun yang mendukung sintaks panggilan fungsi, seperti std::function.

typename F Jenis fungsi gratis.

typename O Jenis objek.

typename M Jenis fungsi pointer-to-member.

Parameters

lHandler Objek lambda, atau lebih umumnya, objek yang mendukung sintaks panggilan fungsi, seperti std::function, yang akan menangani peristiwa.

fHandler Fungsi pointer-to-free, yang akan menangani peristiwa.

object Objek, salah satu fungsi anggotanya akan menangani peristiwa. Tergantung pada kelebihan beban, objek ini dapat diwakili oleh penunjuk mentah atau penunjuk cerdas.

method Pointer-to-member-function, yang akan menangani peristiwa.

Remarks

Konstruktor default (1) membangun delegasi kosong.

Konstruktor (2) membangun delegasi yang memanggil lambda dengan argumen delegasi.

Konstruktor (3) membangun delegasi yang memanggil fungsi dengan argumen delegasi.

Konstruktor (4) membangun delegasi yang memanggil metode objek yang ditunjukkan ke dengan argumen delegasi.

Konstruktor (5) membangun delegasi yang memanggil metode objek yang direferensikan dengan argumen delegasi.

Konstruktor (6) membangun delegasi yang mencoba menyelesaikan weak_ref ke referensi yang kuat. Jika berhasil, maka ia memanggil metode objek dengan argumen delegasi; jika tidak, itu tidak melakukan apa-apa.

Konstruktor (7) membangun delegasi yang mencoba menyelesaikan weak_ref ke referensi yang kuat. Jika berhasil, maka ia memanggil lambda dengan argumen delegasi; jika tidak, itu tidak melakukan apa-apa. Memerlukan C++/WinRT versi 2.0.240111.5.

Konstruktor (8) membangun delegasi yang memanggil metode objek bersama dengan argumen delegasi. Memerlukan C++/WinRT versi 2.0.240111.5.

Konstruktor (9) membuat delegasi yang mencoba menyelesaikan weak_ptr ke pointer bersama. Jika berhasil, maka ia memanggil metode objek bersama dengan argumen delegasi; jika tidak, itu tidak melakukan apa-apa. Memerlukan C++/WinRT versi 2.0.240111.5.

Konstruktor (10) membangun delegasi yang mencoba menyelesaikan weak_ptr ke pointer bersama. Jika berhasil, maka ia memanggil lambda dengan argumen delegasi; jika tidak, itu tidak melakukan apa-apa. Memerlukan C++/WinRT versi 2.0.240111.5.

delegasi::operator() (operator panggilan fungsi)

Invokes the delegate represented by the delegate object with the provided arguments.

Syntax

void operator()(T const&... args) const

See also