C# 抽象类错误

标签 c# abstract

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/

相关文章:

c# - 如何在Azure Functions中实现指数退避?

c# - 无法在 Android 9,10 Xamarin 上获得媒体播放器声音

c# - 构造异常消息的最佳做法是什么?

java - 将抽象类扩展为枚举 - 策略模式

java - 试图实例化抽象类的对象,这是编译错误还是语法错误?

java - 在 Java 中,如何在方法参数中正确使用抽象类?

inheritance - 为什么在 Julia 中使用抽象类型关键字?

c# - CMD C# Window应用程序ProcessStartInfo

java - 普通接口(interface)类和只有抽象方法的抽象类有什么区别吗?

c# - 在 c#\.NET 中使用自定义操作的 wix 3.5 静默安装程序