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