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);
}
我收到错误,因为语法错误&#39;(&#39; Line public Queue m_Queue;
答案 0 :(得分:6)
这与它是一个抽象类没有任何关系。它只是一个无效的变量声明:
public Queue<IEnvelopeFactory> m_Queue<IEnvelopeFactory>;
您期望第二个<IEnvelopeFactory>
做什么?它为Queue<T>
指定了泛型类型参数。它应该只是:
public Queue<IEnvelopeFactory> m_Queue;
...虽然理想情况下你首先没有公共领域。
(我还建议反对添加终结器只是为了它。终结器很少非常。而且,如果你要有一个Dispose
方法,为什么不实施IDisposable
?)
答案 1 :(得分:1)
尝试更改为:
public abstract class IEnvelopeFactory {
public Queue<IEnvelopeFactory> m_Queue;
}
答案 2 :(得分:1)
您已经强烈指定了类型,无需将通用部分添加到变量名称:
public Queue<IEnvelopeFactory> m_Queue;
答案 3 :(得分:0)
make m_Queue<IEnvelopeFactory>
=&gt; m_Queue
换句话说:
public Queue<IEnvelopeFactory> m_Queue;
如果您不希望出于某种原因立即对其进行初始化。
答案 4 :(得分:0)
也许是因为它应该是:
public Queue<IEnvelopeFactory> m_Queue = new Queue<IEnvelopeFactory>();
答案 5 :(得分:0)
将您的代码更改为 -
public Queue<IEnvelopeFactory> m_Queue;
队列类的语法 -
[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Queue<T> : IEnumerable<T>, ICollection,
IEnumerable
您可以在类中将引用变量定义为 -
public Queue<IEnvelopeFactory> m_Queue;
您可以在类 -
中初始化Queue变量public Queue<IEnvelopeFactory> m_Queue = new Queue<IEnvelopeFactory>();
答案 6 :(得分:0)
public Queue<IEnvelopeFactory> m_Queue;
这就够了:您已经指定了m_Queue
变量的确切类型。