Я написал класс под названием QueueManager:C# очереди создания функции
class QueueManager
{
Queue functionsQueue;
public bool IsEmpty
{
get
{
if (functionsQueue.Count == 0)
return true;
else
return false;
}
}
public QueueManager()
{
functionsQueue = new Queue();
}
public bool Contains(Action action)
{
if (functionsQueue.Contains(action))
return true;
else
return false;
}
public Action Pop()
{
return functionsQueue.Dequeue() as Action;
}
public void Add(Action function)
{
functionsQueue.Enqueue(function);
}
public void Add(Func<CacheObject,Boolean> function)
{
functionsQueue.Enqueue(function);
}
и когда я создаю экземпляр этого класса и вызвать метод Add он отлично работает для функций без аргументов, например: functionQueue. Добавить (метод); , но при вызове методов с аргументом и возвращаемым значением (в моем случае ClassType в качестве аргумента и Boolean как возвращаемое значение), например functionQueue.Add (Method2 (classObject)); он не компилируется, что мне не хватает?
Посмотрите здесь: http://stackoverflow.com/questions/4317479/func-vs-action-vs-predicate – CodeCaster