42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using System.Runtime.CompilerServices;
|
|
|
|
namespace BITKit{
|
|
/// <summary>
|
|
/// 主要加工器,用于多个加工器顺序加工
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
public interface IMainProcessor<T>
|
|
{
|
|
void AddProcessor(IProcessor<T> processor);
|
|
void RemoveProcessor(IProcessor<T> processor);
|
|
T Process(T source);
|
|
}
|
|
/// <summary>
|
|
/// 加工器,用于加工数据 <see cref="MainProcessor{T}"/> 会调用 <see cref="IProcessor{T}.Process"/> 方法
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
public interface IProcessor<T>
|
|
{
|
|
T Process(T source, T current);
|
|
}
|
|
/// <summary>
|
|
/// 带参数的加工集合器,用于多个加工器顺序加工
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <typeparam name="T0"></typeparam>
|
|
public interface IMainProcessor<T, T0>
|
|
{
|
|
void AddProcessor(IProcessor<T, T0> processor);
|
|
void RemoveProcessor(IProcessor<T, T0> processor);
|
|
T Process(T source, T0 arg);
|
|
}
|
|
/// <summary>
|
|
/// 带参数的加工器,用于加工数据 <see cref="MainProcessor{T,T0}"/> 会调用 <see cref="IProcessor{T,T0}.Process"/> 方法
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <typeparam name="T0"></typeparam>
|
|
public interface IProcessor<T, in T0>
|
|
{
|
|
T Process(T source, T current, T0 arg);
|
|
}
|
|
} |