public abstract class IEnvelopeFactory {
public Queue<IEnvelopeFactory> m_Queue<IEnvelopeFactory>;
public IEnvelopeFactory() { }
~IEnvelopeFactory() { }
public virtual void Dispose() { }
/// <summary>
/// Parsing
/// </summary>
/// <param name="input"></param>
/// <param name="envelope"></param>
public abstract bool Parse(string input, out Envelope envelope);
/// <summary>
/// Formatting
/// </summary>
/// <param name="env"></param>
/// <param name="envStr"></param>
public abstract bool Format(Envelope env, out string envStr);
}
我在语法错误时遇到错误'('行公共队列m_queue;
这与它是抽象类无关。这只是一个无效的变量声明:
public Queue<IEnvelopeFactory> m_Queue<IEnvelopeFactory>;
您期望第二个<IEnvelopeFactory>
做什么?它指定了Queue<T>
的通用类型参数。应该只是:
public Queue<IEnvelopeFactory> m_Queue;
...尽管理想情况下,您首先不会有公共场所。
(我也建议只是为此而添加最终确定器。最终化的最终化是非常需要的。而且,如果您要拥有一个Dispose
方法,为什么不实施IDisposable
?)
您已经强烈指定了类型,无需将通用零件添加到变量名称:
public Queue<IEnvelopeFactory> m_Queue;
尝试更改为:
public abstract class IEnvelopeFactory {
public Queue<IEnvelopeFactory> m_Queue;
}
make m_Queue<IEnvelopeFactory>
=> m_Queue
换句话说:
public Queue<IEnvelopeFactory> m_Queue;
,如果您不想要某种原因,请立即初始化。
也许是因为它应该是:
public Queue<IEnvelopeFactory> m_Queue = new Queue<IEnvelopeFactory>();
将您的代码更改为 -
public Queue<IEnvelopeFactory> m_Queue;
队列类的语法 -
[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Queue<T> : IEnumerable<T>, ICollection,
IEnumerable
您可以在类中定义一个参考变量为 -
public Queue<IEnvelopeFactory> m_Queue;
您可以在类中初始化队列变量 -
public Queue<IEnvelopeFactory> m_Queue = new Queue<IEnvelopeFactory>();
public Queue<IEnvelopeFactory> m_Queue;
就足够了:您已经指定了m_Queue
变量的确切类型。