template<typename result_t, typename... arguments_t>
class xtd::delegate< result_t(arguments_t...)>
Represents a delegate, which is a data structure that refers to a static method or to a class instance && an instance method of that class.
- Header
-
- Namespace
- xtd
- Library
- xtd.core
- Examples
- The following example shows how to define a delegate named my Method delegate. Instances of this delegate are created for an instance method && a static method of the nested mySampleClass class. The delegate for the instance method requires an instance of mySampleClass. The mySampleClass instance is saved in a variable named mySC.
#include <xtd/console>
#include <xtd/delegate>
void goodbye(
const string&
s) {
}
public:
void hello(const string& s) {
console::write_line("Hello {}", s);
}
};
auto main() -> int {
using example_function =
delegate<void(
const string&)>;
auto str = string {"World"};
auto f = example_function {instance, &::object::hello};
return 0;
}
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
delegate()=default
Initializes an empty delegate.
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:42
object()=default
Create a new instance of the ultimate base class object.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10
|
| delegate ()=default |
| Initializes an empty delegate.
|
|
| delegate (const function_t &function) noexcept |
| Initializes a delegate that invokes the specified instance method.
|
|
template<typename object1_t , typename object2_t > |
| delegate (const object1_t &object, result_t(object2_t::*method)() const) noexcept |
| Initializes a delegate that invokes the specified instance method on the specified class instance.
|
|
template<typename object1_t , typename object2_t > |
| delegate (const object1_t &object, result_t(object2_t::*method)()) noexcept |
| Initializes a delegate that invokes the specified instance method on the specified class instance.
|
|
|
async_result | begin_invoke (arguments_t... arguments) |
| Executes the method represented by the current delegate asynchronously on the thread that the control's underlying handle was created on.
|
|
async_result | begin_invoke (xtd::async_callback async_callback, arguments_t... arguments) |
| Executes the method represented by the current delegate asynchronously on the thread that the control's underlying handle was created on.
|
|
async_result | begin_invoke (xtd::async_callback async_callback, std::any async_state, arguments_t... arguments) |
| Executes the method represented by the current delegate asynchronously on the thread that the control's underlying handle was created on.
|
|
result_t | end_invoke (async_result async) |
| Retrieves the return value of the asynchronous operation represented by the async_result_invoke passed.
|
|
result_t | invoke (arguments_t... arguments) const |
| invokes the method represented by the current delegate.
|
|
bool | equals (const delegate &delegate) const noexcept override |
| Determines whether this instance and another specified delegateType object have the same value.
|
|
virtual bool | equals (const object &obj) const noexcept |
| Determines whether the specified object is equal to the current object.
|
|
template<typename object_a_t , typename object_b_t > |
static bool | equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
| Determines whether the specified object instances are considered equal.
|
|
|
static delegate | combine (const std::vector< delegate > &delegates) noexcept |
| Concatenates the invocation lists of an array of delegates.
|
|
static delegate | combine (const delegate &a, const delegate &b) noexcept |
| Concatenates the invocation lists of two delegates.
|
|
static delegate | remove (const delegate &source, const delegate &value) noexcept |
| removes the last occurrence of the invocation list of a delegate from the invocation list of another delegate.
|
|
static delegate | remove_all (const delegate &source, const delegate &value) noexcept |
| removes all occurrences of the invocation list of a delegate from the invocation list of another delegate.
|
|
|
| object ()=default |
| Create a new instance of the ultimate base class object.
|
|
virtual size_t | get_hash_code () const noexcept |
| Serves as a hash function for a particular type.
|
|
virtual type_object | get_type () const noexcept |
| Gets the type of the current instance.
|
|
template<typename object_t > |
xtd::uptr< object_t > | memberwise_clone () const |
| Creates a shallow copy of the current object.
|
|
virtual xtd::string | to_string () const noexcept |
| Returns a xtd::string that represents the current object.
|
|
virtual bool | equals (const delegate< result_t(arguments_t...)> &) const noexcept=0 |
| Indicates whether the current object is equal to another object of the same type.
|
|
template<typename object_a_t , typename object_b_t > |
static bool | equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
| Determines whether the specified object instances are considered equal.
|
|
template<typename object_a_t , typename object_b_t > |
static bool | reference_equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
| Determines whether the specified object instances are the same instance.
|
|
template<typename result_t , typename... arguments_t>
template<typename object1_t , typename object2_t >
xtd::delegate< result_t(arguments_t...)>::delegate |
( |
const object1_t & |
object, |
|
|
result_t(object2_t::*)() const |
method |
|
) |
| |
|
inlinenoexcept |
Initializes a delegate that invokes the specified instance method on the specified class instance.
- Parameters
-
object | the class instance. |
function | the method instance. |
template<typename result_t , typename... arguments_t>
template<typename object1_t , typename object2_t >
xtd::delegate< result_t(arguments_t...)>::delegate |
( |
const object1_t & |
object, |
|
|
result_t(object2_t::*)() |
method |
|
) |
| |
|
inlinenoexcept |
Initializes a delegate that invokes the specified instance method on the specified class instance.
- Parameters
-
object | the class instance. |
function | the method instance. |