Delegate Delegate Delegate Delegate Class

Определение

Представляет делегат — структуру данных, указывающую на статический метод или на экземпляр класса и метод экземпляра этого класса.Represents a delegate, which is a data structure that refers to a static method or to a class instance and an instance method of that class.

public ref class Delegate abstract : ICloneable, System::Runtime::Serialization::ISerializable
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDual)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class Delegate : ICloneable, System.Runtime.Serialization.ISerializable
type Delegate = class
    interface ICloneable
    interface ISerializable
Public MustInherit Class Delegate
Implements ICloneable, ISerializable
Наследование
DelegateDelegateDelegateDelegate
Производный
Атрибуты
Реализации

Примеры

В следующем примере показано, как определить делегат с именем myMethodDelegate.The following example shows how to define a delegate named myMethodDelegate. Экземпляры этого делегата создаются для метода экземпляра и статического метода вложенного mySampleClass класса.Instances of this delegate are created for an instance method and a static method of the nested mySampleClass class. Делегат для метода экземпляра требует наличия экземпляра mySampleClass.The delegate for the instance method requires an instance of mySampleClass. Экземпляр сохраняется в переменной с именем mySC. mySampleClassThe mySampleClass instance is saved in a variable named mySC.

using namespace System;
delegate String^ myMethodDelegate( // Declares a delegate for a method that takes in an int and returns a String.
int myInt );

// Defines some methods to which the delegate can point.
ref class mySampleClass
{
public:

   // Defines an instance method.
   String^ myStringMethod( int myInt )
   {
      if ( myInt > 0 )
            return ("positive");

      if ( myInt < 0 )
            return ("negative");

      return ("zero");
   }


   // Defines a static method.
   static String^ mySignMethod( int myInt )
   {
      if ( myInt > 0 )
            return ("+");

      if ( myInt < 0 )
            return ("-");

      return ("");
   }

};

int main()
{
   
   // Creates one delegate for each method. For the instance method, an 
   // instance (mySC) must be supplied. For the static method, only the
   // method name is needed.
   mySampleClass^ mySC = gcnew mySampleClass;
   myMethodDelegate^ myD1 = gcnew myMethodDelegate( mySC, &mySampleClass::myStringMethod );
   myMethodDelegate^ myD2 = gcnew myMethodDelegate( mySampleClass::mySignMethod );
   
   // Invokes the delegates.
   Console::WriteLine( "{0} is {1}; use the sign \"{2}\".", 5, myD1( 5 ), myD2( 5 ) );
   Console::WriteLine( "{0} is {1}; use the sign \"{2}\".",  -3, myD1(  -3 ), myD2(  -3 ) );
   Console::WriteLine( "{0} is {1}; use the sign \"{2}\".", 0, myD1( 0 ), myD2( 0 ) );
}

/*
This code produces the following output:

5 is positive; use the sign "+".
-3 is negative; use the sign "-".
0 is zero; use the sign "".
*/
using System;
public class SamplesDelegate  {

   // Declares a delegate for a method that takes in an int and returns a String.
   public delegate String myMethodDelegate( int myInt );

   // Defines some methods to which the delegate can point.
   public class mySampleClass  {

      // Defines an instance method.
      public String myStringMethod ( int myInt )  {
         if ( myInt > 0 )
            return( "positive" );
         if ( myInt < 0 )
            return( "negative" );
         return ( "zero" );
      }

      // Defines a static method.
      public static String mySignMethod ( int myInt )  {
         if ( myInt > 0 )
            return( "+" );
         if ( myInt < 0 )
            return( "-" );
         return ( "" );
      }
   }

   public static void Main()  {

      // Creates one delegate for each method. For the instance method, an
      // instance (mySC) must be supplied. For the static method, use the
      // class name.
      mySampleClass mySC = new mySampleClass();
      myMethodDelegate myD1 = new myMethodDelegate( mySC.myStringMethod );
      myMethodDelegate myD2 = new myMethodDelegate( mySampleClass.mySignMethod );

      // Invokes the delegates.
      Console.WriteLine( "{0} is {1}; use the sign \"{2}\".", 5, myD1( 5 ), myD2( 5 ) );
      Console.WriteLine( "{0} is {1}; use the sign \"{2}\".", -3, myD1( -3 ), myD2( -3 ) );
      Console.WriteLine( "{0} is {1}; use the sign \"{2}\".", 0, myD1( 0 ), myD2( 0 ) );
   }

}


/*
This code produces the following output:
 
5 is positive; use the sign "+".
-3 is negative; use the sign "-".
0 is zero; use the sign "".
*/ 

Public Class SamplesDelegate

   ' Declares a delegate for a method that takes in an int and returns a String.
   Delegate Function myMethodDelegate(myInt As Integer) As [String]

   ' Defines some methods to which the delegate can point.
   Public Class mySampleClass

      ' Defines an instance method.
      Public Function myStringMethod(myInt As Integer) As [String]
         If myInt > 0 Then
            Return "positive"
         End If
         If myInt < 0 Then
            Return "negative"
         End If
         Return "zero"
      End Function 'myStringMethod

      ' Defines a static method.
      Public Shared Function mySignMethod(myInt As Integer) As [String]
         If myInt > 0 Then
            Return "+"
         End If
         If myInt < 0 Then
            Return "-"
         End If
         Return ""
      End Function 'mySignMethod
   End Class

   Public Shared Sub Main()

      ' Creates one delegate for each method. For the instance method, an
      ' instance (mySC) must be supplied. For the Shared method, the
      ' method name is qualified by the class name.
      Dim mySC As New mySampleClass()
      Dim myD1 As New myMethodDelegate(AddressOf mySC.myStringMethod)
      Dim myD2 As New myMethodDelegate(AddressOf mySampleClass.mySignMethod)

      ' Invokes the delegates.
      Console.WriteLine("{0} is {1}; use the sign ""{2}"".", 5, myD1(5), myD2(5))
      Console.WriteLine("{0} is {1}; use the sign ""{2}"".", - 3, myD1(- 3), myD2(- 3))
      Console.WriteLine("{0} is {1}; use the sign ""{2}"".", 0, myD1(0), myD2(0))

   End Sub

End Class


'This code produces the following output:
' 
'5 is positive; use the sign "+".
'-3 is negative; use the sign "-".
'0 is zero; use the sign "".


Комментарии

Delegate Класс является базовым классом для типов делегатов.The Delegate class is the base class for delegate types. Однако только система и компиляторы могут явно наследоваться от Delegate класса или MulticastDelegate класса.However, only the system and compilers can derive explicitly from the Delegate class or from the MulticastDelegate class. Также не допускается получение нового типа из типа делегата.It is also not permissible to derive a new type from a delegate type. Delegate Класс не считается типом делегата; это класс, используемый для наследования типов делегатов.The Delegate class is not considered a delegate type; it is a class used to derive delegate types.

Большинство языков реализуют delegate ключевое слово, и компиляторы для этих языков могут быть производными MulticastDelegate от класса, поэтому пользователи должны использовать delegate ключевое слово, предоставляемое языком.Most languages implement a delegate keyword, and compilers for those languages are able to derive from the MulticastDelegate class; therefore, users should use the delegate keyword provided by the language.

Примечание

Среда CLR предоставляет Invoke метод для каждого типа делегата с той же сигнатурой, что и делегат.The common language runtime provides an Invoke method for each delegate type, with the same signature as the delegate. Нет необходимости вызывать этот метод явно из C#, Visual Basic или Visual C++, так как компиляторы вызывают его автоматически.You do not have to call this method explicitly from C#, Visual Basic, or Visual C++, because the compilers call it automatically. Метод полезен в отражении, если требуется найти сигнатуру типа делегата. InvokeThe Invoke method is useful in reflection when you want to find the signature of the delegate type.

Среда CLR предоставляет каждому типу BeginInvoke делегата методы и EndInvoke , чтобы обеспечить асинхронный вызов делегата.The common language runtime provides each delegate type with BeginInvoke and EndInvoke methods, to enable asynchronous invocation of the delegate. Дополнительные сведения об этих методах см. в разделе асинхронный вызов синхронных методов.For more information about these methods, see Calling Synchronous Methods Asynchronously.

Объявление типа делегата устанавливает контракт, указывающий сигнатуру одного или нескольких методов.The declaration of a delegate type establishes a contract that specifies the signature of one or more methods. Делегат — это экземпляр типа делегата, который имеет ссылки на:A delegate is an instance of a delegate type that has references to:

  • Метод экземпляра типа и целевой объект, назначаемый этому типу.An instance method of a type and a target object assignable to that type.

  • Метод экземпляра типа с скрытым this параметром, предоставленным в списке формальных параметров.An instance method of a type, with the hidden this parameter exposed in the formal parameter list. Говорят, что делегат является открытым делегатом экземпляра.The delegate is said to be an open instance delegate.

  • Статический метод.A static method.

  • Статический метод и целевой объект, назначаемые первому параметру метода.A static method and a target object assignable to the first parameter of the method. Говорят, что делегат закрыт по первому аргументу.The delegate is said to be closed over its first argument.

Дополнительные сведения о привязке делегата см. CreateDelegate(Type, Object, MethodInfo, Boolean) в разделе перегрузка метода.For more information on delegate binding, see the CreateDelegate(Type, Object, MethodInfo, Boolean) method overload.

Примечание

В .NET Framework версиях 1,0 и 1,1 делегат может представлять метод только в том случае, если сигнатура метода точно соответствует сигнатуре, заданной типом делегата.In the .NET Framework versions 1.0 and 1.1, a delegate can represent a method only if the signature of the method exactly matches the signature specified by the delegate type. Поэтому поддерживаются только первый и третий маркеры в приведенном выше списке, и первый маркер требует точного совпадения типа.Thus, only the first and third bullets in the preceding list are supported, and the first bullet requires an exact type match.

Когда делегат представляет метод экземпляра, закрытый для первого аргумента (наиболее распространенный случай), делегат сохраняет ссылку на точку входа метода и ссылку на объект, называемый целевым объектом, который имеет тип, который можно присвоить типу, который определил Method.When a delegate represents an instance method closed over its first argument (the most common case), the delegate stores a reference to the method's entry point and a reference to an object, called the target, which is of a type assignable to the type that defined the method. Когда делегат представляет открытый метод экземпляра, он сохраняет ссылку на точку входа метода.When a delegate represents an open instance method, it stores a reference to the method's entry point. Сигнатура делегата должна включать скрытый this параметр в список формальных параметров; в этом случае делегат не имеет ссылки на целевой объект, и при вызове делегата должен быть указан целевой объект.The delegate signature must include the hidden this parameter in its formal parameter list; in this case, the delegate does not have a reference to a target object, and a target object must be supplied when the delegate is invoked.

Когда делегат представляет статический метод, делегат сохраняет ссылку на точку входа метода.When a delegate represents a static method, the delegate stores a reference to the method's entry point. Когда делегат представляет статический метод, закрытый для своего первого аргумента, делегат сохраняет ссылку на точку входа метода и ссылку на целевой объект, назначаемый типу первого аргумента метода.When a delegate represents a static method closed over its first argument, the delegate stores a reference to the method's entry point and a reference to a target object assignable to the type of the method's first argument. При вызове делегата первый аргумент статического метода получает целевой объект.When the delegate is invoked, the first argument of the static method receives the target object.

Список вызовов делегата — это упорядоченный набор делегатов, в которых каждый элемент списка вызывает только один из методов, представленных делегатом.The invocation list of a delegate is an ordered set of delegates in which each element of the list invokes exactly one of the methods represented by the delegate. Список вызовов может содержать дублирующиеся методы.An invocation list can contain duplicate methods. Во время вызова методы вызываются в том порядке, в котором они указаны в списке вызовов.During an invocation, methods are invoked in the order in which they appear in the invocation list. Делегат пытается вызвать каждый метод в своем списке вызовов; дубликаты вызываются один раз для каждого, когда они появляются в списке вызовов.A delegate attempts to invoke every method in its invocation list; duplicates are invoked once for each time they appear in the invocation list. Делегаты являются неизменяемыми; После создания список вызовов делегата не изменяется.Delegates are immutable; once created, the invocation list of a delegate does not change.

Делегаты называются многоадресностью или комбинированными, так как делегат может вызывать один или несколько методов и может использоваться в операциях объединения.Delegates are referred to as multicast, or combinable, because a delegate can invoke one or more methods and can be used in combining operations.

Объединение операций, таких как Combine и Remove, не приводит к изменению существующих делегатов.Combining operations, such as Combine and Remove, do not alter existing delegates. Вместо этого такая операция возвращает новый делегат, который содержит результаты операции, неизмененный делегат или null.Instead, such an operation returns a new delegate that contains the results of the operation, an unchanged delegate, or null. Операция объединения возвращает null , когда результатом операции является делегат, который не ссылается хотя бы на один метод.A combining operation returns null when the result of the operation is a delegate that does not reference at least one method. Операция объединения возвращает делегат без изменений, если запрошенная операция не имеет результата.A combining operation returns an unchanged delegate when the requested operation has no effect.

Примечание

Управляемые языки используют Combine методы и Remove для реализации операций делегата.Managed languages use the Combine and Remove methods to implement delegate operations. Примеры включают в AddHandler себя RemoveHandler операторы и в Visual Basic и операторы + = и-= для типов делегатов C#в.Examples include the AddHandler and RemoveHandler statements in Visual Basic and the += and -= operators on delegate types in C#.

Начиная с .NET Framework 4.NET Framework 4, универсальные типы делегатов могут иметь параметры типа Variant.Starting with the .NET Framework 4.NET Framework 4, generic delegate types can have variant type parameters. Параметры контравариантного типа можно использовать в качестве типов параметров делегата, а параметр ковариантного типа можно использовать в качестве возвращаемого типа.Contravariant type parameters can be used as parameter types of the delegate, and a covariant type parameter can be used as the return type. Эта функция позволяет обеспечить совместимость типов универсальных делегатов, созданных из того же определения универсального типа, если их аргументы типа являются ссылочными типами с отношением наследования, как описано в ковариации и контрвариация .This feature allows generic delegate types that are constructed from the same generic type definition to be assignment-compatible if their type arguments are reference types with an inheritance relationship, as explained in Covariance and Contravariance.

Примечание

Универсальные делегаты, совместимые с присваиванием, в связи с дисперсией не всегда являются комбинированными.Generic delegates that are assignment-compatible because of variance are not necessarily combinable. Чтобы обеспечить возможность комбинирования, типы должны точно совпадать.To be combinable, the types must match exactly. Например, предположим, что класс с именем Derived является производным от класса с Baseименем.For example, suppose that a class named Derived is derived from a class named Base. Делегат типа Action<Base> (Action(Of Base) в Visual Basic) может быть присвоен переменной типа Action<Derived>, но два делегата не могут быть объединены, так как типы не совпадают в точности.A delegate of type Action<Base> (Action(Of Base) in Visual Basic) can be assigned to a variable of type Action<Derived>, but the two delegates cannot be combined because the types do not match exactly.

Если вызванный метод создает исключение, метод прекращает выполнение, исключение передается обратно вызывающему объекту делегата, а остальные методы в списке вызовов не вызываются.If an invoked method throws an exception, the method stops executing, the exception is passed back to the caller of the delegate, and remaining methods in the invocation list are not invoked. Перехват исключения в вызывающем объекте не влияет на это поведение.Catching the exception in the caller does not alter this behavior.

Когда сигнатура методов, вызываемых делегатом, содержит возвращаемое значение, делегат возвращает возвращаемое значение последнего элемента в списке вызовов.When the signature of the methods invoked by a delegate includes a return value, the delegate returns the return value of the last element in the invocation list. Если сигнатура содержит параметр, передаваемый по ссылке, то конечное значение параметра представляет собой результат каждого метода в списке вызовов, который выполняется последовательно и обновляет значение параметра.When the signature includes a parameter that is passed by reference, the final value of the parameter is the result of every method in the invocation list executing sequentially and updating the parameter's value.

Ближайший эквивалент делегата в языке C является указателем на функцию.The closest equivalent of a delegate in C is a function pointer. Делегат может представлять статический метод или метод экземпляра.A delegate can represent a static method or an instance method. Когда делегат представляет метод экземпляра, в делегате хранится не только ссылка на точку входа метода, но и ссылка на экземпляр класса.When the delegate represents an instance method, the delegate stores not only a reference to the method's entry point, but also a reference to the class instance. В отличие от указателей функций делегаты являются объектно ориентированными и типизированными.Unlike function pointers, delegates are object oriented and type safe.

Конструкторы

Delegate(Object, String) Delegate(Object, String) Delegate(Object, String) Delegate(Object, String)

Инициализирует делегат, вызывающий заданный метод экземпляра указанного класса.Initializes a delegate that invokes the specified instance method on the specified class instance.

Delegate(Type, String) Delegate(Type, String) Delegate(Type, String) Delegate(Type, String)

Инициализирует делегат, вызывающий заданный статистический метод указанного класса.Initializes a delegate that invokes the specified static method from the specified class.

Свойства

Method Method Method Method

Возвращает метод, представленный делегатом.Gets the method represented by the delegate.

Target Target Target Target

Возвращает экземпляр класса, метод которого вызывает текущий делегат.Gets the class instance on which the current delegate invokes the instance method.

Методы

Clone() Clone() Clone() Clone()

Создает неполную копию делегата.Creates a shallow copy of the delegate.

Combine(Delegate, Delegate) Combine(Delegate, Delegate) Combine(Delegate, Delegate) Combine(Delegate, Delegate)

Сцепляет списки вызовов двух делегатов.Concatenates the invocation lists of two delegates.

Combine(Delegate[]) Combine(Delegate[]) Combine(Delegate[]) Combine(Delegate[])

Сцепляет списки вызовов массива делегатов.Concatenates the invocation lists of an array of delegates.

CombineImpl(Delegate) CombineImpl(Delegate) CombineImpl(Delegate) CombineImpl(Delegate)

Сцепляет списки вызовов заданного группового (комбинируемого) делегата и текущего группового (комбинируемого) делегата.Concatenates the invocation lists of the specified multicast (combinable) delegate and the current multicast (combinable) delegate.

CreateDelegate(Type, MethodInfo) CreateDelegate(Type, MethodInfo) CreateDelegate(Type, MethodInfo) CreateDelegate(Type, MethodInfo)

Создает делегат указанного типа, представляющий заданный статический метод.Creates a delegate of the specified type to represent the specified static method.

CreateDelegate(Type, MethodInfo, Boolean) CreateDelegate(Type, MethodInfo, Boolean) CreateDelegate(Type, MethodInfo, Boolean) CreateDelegate(Type, MethodInfo, Boolean)

Создает делегат указанного типа, представляющий заданный статический метод, с заданным поведением на случай, если операция связывания завершится неудачей.Creates a delegate of the specified type to represent the specified static method, with the specified behavior on failure to bind.

CreateDelegate(Type, Object, MethodInfo) CreateDelegate(Type, Object, MethodInfo) CreateDelegate(Type, Object, MethodInfo) CreateDelegate(Type, Object, MethodInfo)

Создает делегат указанного типа, представляющий заданный статический метод или метод экземпляра, с заданным первым аргументом.Creates a delegate of the specified type that represents the specified static or instance method, with the specified first argument.

CreateDelegate(Type, Object, MethodInfo, Boolean) CreateDelegate(Type, Object, MethodInfo, Boolean) CreateDelegate(Type, Object, MethodInfo, Boolean) CreateDelegate(Type, Object, MethodInfo, Boolean)

Создает делегат указанного типа, представляющий заданный статический метод или метод экземпляра, с заданным первым аргументом и поведением на случай, если операция связывания завершится неудачей.Creates a delegate of the specified type that represents the specified static or instance method, with the specified first argument and the specified behavior on failure to bind.

CreateDelegate(Type, Object, String) CreateDelegate(Type, Object, String) CreateDelegate(Type, Object, String) CreateDelegate(Type, Object, String)

Создает делегат указанного типа, представляющий заданный метод экземпляра, который вызывается для заданного экземпляра класса.Creates a delegate of the specified type that represents the specified instance method to invoke on the specified class instance.

CreateDelegate(Type, Object, String, Boolean) CreateDelegate(Type, Object, String, Boolean) CreateDelegate(Type, Object, String, Boolean) CreateDelegate(Type, Object, String, Boolean)

Создает делегат указанного типа, представляющий заданный метод экземпляра, который вызывается из заданного экземпляра класса с заданной установкой учета регистра.Creates a delegate of the specified type that represents the specified instance method to invoke on the specified class instance with the specified case-sensitivity.

CreateDelegate(Type, Object, String, Boolean, Boolean) CreateDelegate(Type, Object, String, Boolean, Boolean) CreateDelegate(Type, Object, String, Boolean, Boolean) CreateDelegate(Type, Object, String, Boolean, Boolean)

Создает делегат указанного типа, представляющий заданный статический метод, вызываемый для заданного экземпляра класса с заданной установкой учета регистра и заданным поведением на случай, если операция связывания завершится неудачей.Creates a delegate of the specified type that represents the specified instance method to invoke on the specified class instance, with the specified case-sensitivity and the specified behavior on failure to bind.

CreateDelegate(Type, Type, String) CreateDelegate(Type, Type, String) CreateDelegate(Type, Type, String) CreateDelegate(Type, Type, String)

Создает делегат указанного типа, представляющий заданный статический метод заданного класса.Creates a delegate of the specified type that represents the specified static method of the specified class.

CreateDelegate(Type, Type, String, Boolean) CreateDelegate(Type, Type, String, Boolean) CreateDelegate(Type, Type, String, Boolean) CreateDelegate(Type, Type, String, Boolean)

Создает делегат указанного типа, представляющий заданный статический метод заданного класса с заданной установкой учета регистра.Creates a delegate of the specified type that represents the specified static method of the specified class, with the specified case-sensitivity.

CreateDelegate(Type, Type, String, Boolean, Boolean) CreateDelegate(Type, Type, String, Boolean, Boolean) CreateDelegate(Type, Type, String, Boolean, Boolean) CreateDelegate(Type, Type, String, Boolean, Boolean)

Создает делегат заданного типа, представляющий заданный статический метод заданного класса с заданными установками учета регистра и поведением на случай, если операция связывания завершится неудачей.Creates a delegate of the specified type that represents the specified static method of the specified class, with the specified case-sensitivity and the specified behavior on failure to bind.

DynamicInvoke(Object[]) DynamicInvoke(Object[]) DynamicInvoke(Object[]) DynamicInvoke(Object[])

Динамически (с поздней привязкой) вызывает метод, представленный текущим делегатом.Dynamically invokes (late-bound) the method represented by the current delegate.

DynamicInvokeImpl(Object[]) DynamicInvokeImpl(Object[]) DynamicInvokeImpl(Object[]) DynamicInvokeImpl(Object[])

Динамически (с поздней привязкой) вызывает метод, представленный текущим делегатом.Dynamically invokes (late-bound) the method represented by the current delegate.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, принадлежат ли заданный объект и текущий делегат к одному типу, и одинаковы ли их целевые объекты, методы и списки вызовов.Determines whether the specified object and the current delegate are of the same type and share the same targets, methods, and invocation list.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код делегата.Returns a hash code for the delegate.

GetInvocationList() GetInvocationList() GetInvocationList() GetInvocationList()

Возвращает список вызовов делегата.Returns the invocation list of the delegate.

GetMethodImpl() GetMethodImpl() GetMethodImpl() GetMethodImpl()

Возвращает статический метод, представленный текущим делегатом.Gets the static method represented by the current delegate.

GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Не поддерживается.Not supported.

GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(Delegate, Delegate) Remove(Delegate, Delegate) Remove(Delegate, Delegate) Remove(Delegate, Delegate)

Удаляет последнее вхождение списка вызовов делегата из списка вызовов другого делегата.Removes the last occurrence of the invocation list of a delegate from the invocation list of another delegate.

RemoveAll(Delegate, Delegate) RemoveAll(Delegate, Delegate) RemoveAll(Delegate, Delegate) RemoveAll(Delegate, Delegate)

Удаляет все вхождения списка вызовов одного делегата из списка вызовов другого делегата.Removes all occurrences of the invocation list of a delegate from the invocation list of another delegate.

RemoveImpl(Delegate) RemoveImpl(Delegate) RemoveImpl(Delegate) RemoveImpl(Delegate)

Удаляет список вызовов одного делегата из списка вызовов другого делегата.Removes the invocation list of a delegate from the invocation list of another delegate.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Операторы

Equality(Delegate, Delegate) Equality(Delegate, Delegate) Equality(Delegate, Delegate) Equality(Delegate, Delegate)

Определяет, равны ли два заданных делегата.Determines whether the specified delegates are equal.

Inequality(Delegate, Delegate) Inequality(Delegate, Delegate) Inequality(Delegate, Delegate) Inequality(Delegate, Delegate)

Определяет, являются ли заданные делегаты неравными.Determines whether the specified delegates are not equal.

Методы расширения

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.Gets an object that represents the method represented by the specified delegate.

Применяется к

Дополнительно