Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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