using System; namespace SLSUtilities.General { /// /// 实现该接口的类可以根据优先级进行比较和排序。 /// 数字越大优先级越高。 /// public interface IPrioritized : IComparable { int Priority { get; } int IComparable.CompareTo(IPrioritized other) { return other.Priority.CompareTo(Priority); } } public static class IPrioritizedExtensions { public static PrioritizedAction ToPrioritized(this Action action, int priority = 0) { return new PrioritizedAction(action, priority); } public static PrioritizedAction ToPrioritized(this Action action, int priority = 0) { return new PrioritizedAction(action, priority); } public static PrioritizedAction ToPrioritized(this Action action, int priority = 0) { return new PrioritizedAction(action, priority); } public static PrioritizedAction ToPrioritized(this Action action, int priority = 0) { return new PrioritizedAction(action, priority); } public static PrioritizedFunc ToPrioritized(this Func func, int priority = 0) { return new PrioritizedFunc(func, priority); } public static PrioritizedFunc ToPrioritized(this Func func, int priority = 0) { return new PrioritizedFunc(func, priority); } public static PrioritizedFunc ToPrioritized(this Func func, int priority = 0) { return new PrioritizedFunc(func, priority); } public static PrioritizedFunc ToPrioritized(this Func func, int priority = 0) { return new PrioritizedFunc(func, priority); } } }