template<typename result_t>
class xtd::delegate< result_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.  
  | 
|   | 
 | 
| void  | clear () | 
|   | Clear delegates array.  
  | 
|   | 
| async_result  | begin_invoke () | 
|   | 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) | 
|   | 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) | 
|   | 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 () 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()> &) 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.  
  | 
|   |