You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
4.7 KiB

using System;
using System.Collections.Generic;
using System.IO;
namespace Apewer
{
// /// <summary>封装一个方法,该方法不具有参数且不返回值。</summary>
// public delegate void Action();
// /// <summary>表示当事件提供数据时将处理该事件的方法。</summary>
// /// <typeparam name="TEventArgs">事件生成的事件数据的类型。</typeparam>
// /// <param name="sender">事件源。</param>
// /// <param name="e">包含事件数据的对象。</param>
// public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
// /// <summary>封装一个方法,该方法具有一个参数,且返回由 TResult 参数指定的类型的值。</summary>
// /// <typeparam name="T">此委托封装的方法的参数类型。</typeparam>
// /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
// /// <param name="arg">此委托封装的方法的参数。</param>
// /// <returns>此委托封装的方法的返回值。</returns>
// public delegate TResult Func<in T, out TResult>(T arg);
/// <summary></summary>
public delegate void Event(object sender);
/// <summary></summary>
public delegate void Event<T>(object sender, T argument);
/// <summary></summary>
public delegate void Event<T1, T2>(object sender, T1 arg1, T2 arg2);
/// <summary></summary>
public delegate void Event<T1, T2, T3>(object sender, T1 arg1, T2 arg2, T3 arg3);
/// <summary></summary>
public delegate void Event<T1, T2, T3, T4>(object sender, T1 arg1, T2 arg2, T3 arg3, T4 arg4);
/// <summary></summary>
public delegate void Event<T1, T2, T3, T4, T5>(object sender, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
/// <summary></summary>
public delegate void Event<T1, T2, T3, T4, T5, T6>(object sender, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
/// <summary>数组回调。</summary>
public delegate T ArrayCallback<T>(object sender, params T[] arguments);
/// <summary>可枚举回调。</summary>
public delegate T EnumerableCallback<T>(object sender, IEnumerable<T> arguments);
/// <summary>列表回调。</summary>
public delegate T ListCallback<T>(object sender, List<T> arguments);
///// <summary></summary>
//public delegate void EventHandler<T>(object sender, T values) where T : Exception;
/// <summary>为 ZIP 提取文件提供输出流。参数 Size 为未压缩的大小。</summary>
public delegate Stream ZipOnFile(string name, long size, DateTime modified);
/// <summary>处理 ZIP 提取的目录。</summary>
public delegate void ZipOnDirectory(string name, DateTime modified);
#if NET20
/// <summary>封装一个方法,该方法不具有参数,且返回由 TResult 参数指定的类型的值。</summary>
/// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
/// <returns>此委托封装的方法的返回值。</returns>
public delegate TResult Func<out TResult>();
/// <summary>封装一个方法,该方法具有一个参数,且返回由 TResult 参数指定的类型的值。</summary>
/// <typeparam name="T">此委托封装的方法的参数类型。</typeparam>
/// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
/// <param name="arg">此委托封装的方法的参数。</param>
/// <returns>此委托封装的方法的返回值。</returns>
public delegate TResult Func<in T, out TResult>(T arg);
/// <summary>封装一个方法,该方法具有两个参数,并返回由 TResult 参数指定的类型的值。</summary>
/// <typeparam name="T1">此委托封装的方法的第一个参数的类型。</typeparam>
/// <typeparam name="T2">此委托封装的方法的第二个参数的类型。</typeparam>
/// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
/// <param name="arg1">此委托封装的方法的第一个参数。</param>
/// <param name="arg2">此委托封装的方法的第二个参数。</param>
/// <returns>此委托封装的方法的返回值。</returns>
public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
/// <summary>封装一个方法,该方法不具有参数且不返回值。</summary>
public delegate void Action();
/// <summary>表示当事件提供数据时将处理该事件的方法。</summary>
/// <typeparam name="TEventArgs">事件生成的事件数据的类型。</typeparam>
/// <param name="sender">事件源。</param>
/// <param name="e">包含事件数据的对象。</param>
public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
#endif
}