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);
}
我收到一个错误,因为语法错误 '(' expected in Line public Queue m_Queue;
最佳答案
这与它是一个抽象类无关。这只是一个无效的变量声明:
public Queue<IEnvelopeFactory> m_Queue<IEnvelopeFactory>;
你对第二个有什么期待<IEnvelopeFactory>
去做?它指定了 Queue<T>
的通用类型参数.它应该只是:
public Queue<IEnvelopeFactory> m_Queue;
...虽然理想情况下您一开始就不会有公共(public)领域。
(我还建议反对为此添加终结器。终结器非常很少需要。此外,如果您要Dispose
方法,你为什么不实现 IDisposable
?)
关于C# 抽象类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047311/