У меня есть очередь, которая содержит список делегатов, которые соответствуют методам, которые я хочу запустить в будущем. Я хотел бы иметь только особые экземпляры любого конкретного метода/параметра в очереди. Другими словами, очередь DoOne(), DoTwo (2), DoThree (3) должна быть возможной, если не следует допускать очередь DoOne(), DoTwo (2), DoTwo (2).сопоставление делегатов в очереди
Я заметил, что _queue.Contains (Func < int>) работает через минимальное тестирование, которое я сделал, но я беспокоюсь, если я что-то упускаю. Достаточно ли этого достаточно для определения того, поставлен ли конкретный метод/параметр в очередь, чтобы удовлетворить то, что я пытаюсь выполнить?
Queue<Func<int>> _queue = new Queue<Func<int>>();
void Queue(Func<int> Method)
{
if (!_queue.Contains(Method))
_queue.Enqueue(Method);
}
void QueueOne()
{
Queue(() => DoOne());
}
void QueueTwo(int val)
{
Queue(() => DoTwo(val));
}
void DoOne()
{
return 1;
}
void DoTwo(int val)
{
return val;
}
Является ли число типов делегатов известных, или это должно обрабатывать произвольное N число делегатов добавив тот же метод? – Didaxis