I have a generic class. And this generic class needs to have another instance of the same class as one of its member.
Basically, I'm trying to achieve a sequence of operations. So every class will have to know the next item to continue the operation.
ChainedItem(Uri) -> ChainedItem(String) -> ChainedItem(MyClass) -> ....
This is what I have tried so far.
public abstract class ChainedItem<T>
{
private ChainedItem<R> m_chainedItem;
public void SetNextChainedItem(ChainedItem<R> chainedItem)
{
m_chainedItem = chainedItem;
}
public abstract void DoOperation(T data);
public virtual void ContinueNextOperation<R>(R data)
{
if(m_chainedItem != null)
m_chainedItem.DoOperation(data);
}
}
But I cannot use it like this, since R
in line no #3 is not defined yet.