C#抽象类错误 公共抽象类IEDeveloperFactory{ 公共队列m_队列; 公共IEnDeveloperFactory(){} ~IEnDeveloperFactory(){} 公共虚拟void Dispose(){} /// ///解析 /// /// /// 公共抽象布尔解析(字符串输入,信封外); /// ///格式化 /// /// /// 公共抽象bool格式(信封env,输出字符串envStr); }

C#抽象类错误 公共抽象类IEDeveloperFactory{ 公共队列m_队列; 公共IEnDeveloperFactory(){} ~IEnDeveloperFactory(){} 公共虚拟void Dispose(){} /// ///解析 /// /// /// 公共抽象布尔解析(字符串输入,信封外); /// ///格式化 /// /// /// 公共抽象bool格式(信封env,输出字符串envStr); },c#,abstract,C#,Abstract,我收到一个错误,语法错误“(”应为 行公共队列m_Queue;makem_Queue=>m_Queue 换言之: public abstract class IEnvelopeFactory { public Queue<IEnvelopeFactory> m_Queue<IEnvelopeFactory>; public IEnvelopeFactory() { } ~IEnvelopeFactory() { } public v

我收到一个错误,语法错误“(”应为 行公共队列m_Queue;

make
m_Queue
=>
m_Queue

换言之:

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_队列;
如果您不想,出于某种原因,请立即对其进行初始化。

生成
m\u队列
=>
m\u队列

换言之:

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_队列;
如果出于某种原因不需要,请立即初始化它。

尝试更改为:

public Queue<IEnvelopeFactory> m_Queue;
公共抽象类IEnDeveloperFactory{
公共队列m_队列;
}
尝试更改为:

public Queue<IEnvelopeFactory> m_Queue;
公共抽象类IEnDeveloperFactory{
公共队列m_队列;
}

您已经强烈指定了类型,无需将通用部分添加到变量名中:

public abstract class IEnvelopeFactory {    
    public Queue<IEnvelopeFactory> m_Queue;
}
公共队列m_队列;

您已经强烈指定了类型,无需将通用部分添加到变量名中:

public abstract class IEnvelopeFactory {    
    public Queue<IEnvelopeFactory> m_Queue;
}
公共队列m_队列;

这与它是一个抽象类无关。它只是一个无效的变量声明:

public Queue<IEnvelopeFactory> m_Queue;
公共队列m_队列;
您希望第二个
做什么?它正在为
队列
指定泛型类型参数。它应该是:

public Queue<IEnvelopeFactory> m_Queue<IEnvelopeFactory>;
公共队列m_队列;
…虽然理想情况下,你一开始不会有一个公共领域


(我还建议不要仅仅为了添加终结器而添加终结器。终结器很少需要。此外,如果要使用
Dispose
方法,为什么不实现
IDisposable
?)

这与它是一个抽象类无关。它只是一个无效的变量声明:

public Queue<IEnvelopeFactory> m_Queue;
公共队列m_队列;
您希望第二个
做什么?它正在为
队列
指定泛型类型参数。它应该是:

public Queue<IEnvelopeFactory> m_Queue<IEnvelopeFactory>;
公共队列m_队列;
…虽然理想情况下,你一开始不会有一个公共领域


(我还建议不要仅仅为了添加终结器而添加终结器。终结器很少需要。另外,如果要使用
Dispose
方法,为什么不实现
IDisposable
?)

可能是因为它应该是:

public Queue<IEnvelopeFactory> m_Queue;
public Queue<IEnvelopeFactory> m_Queue;
public Queue m_Queue=new Queue();

可能是因为它应该是:

public Queue<IEnvelopeFactory> m_Queue;
public Queue<IEnvelopeFactory> m_Queue;
public Queue m_Queue=new Queue();
将代码更改为-

public Queue<IEnvelopeFactory> m_Queue = new Queue<IEnvelopeFactory>();
公共队列m_队列;
队列类的语法-

public Queue<IEnvelopeFactory> m_Queue;
[SerializableAttribute]
[ComVisibleAttribute(假)]
公共类队列:IEnumerable,ICollection,
数不清
您可以将类中的引用变量定义为-

[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Queue<T> : IEnumerable<T>, ICollection, 
    IEnumerable
公共队列m_队列;
您可以在类中初始化队列变量-

public Queue m_Queue=new Queue();
将代码更改为-

public Queue<IEnvelopeFactory> m_Queue = new Queue<IEnvelopeFactory>();
公共队列m_队列;
队列类的语法-

public Queue<IEnvelopeFactory> m_Queue;
[SerializableAttribute]
[ComVisibleAttribute(假)]
公共类队列:IEnumerable,ICollection,
数不清
您可以将类中的引用变量定义为-

[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Queue<T> : IEnumerable<T>, ICollection, 
    IEnumerable
公共队列m_队列;
您可以在类中初始化队列变量-

public Queue m_Queue=new Queue();
公共队列m\u队列;
这就足够了:您已经指定了
m_Queue
变量的确切类型。

公共队列m_Queue;

这就足够了:您已经指定了
m_Queue
变量的确切类型。

这是一个添加值的答案。我在其他类文件中遇到了一些错误,例如-未实现继承的抽象成员“CCN.MSG.ENV.IEnvelopeFactory”。Format@DineshKumarBalaSubramanian:那么你应该实施它……这是一个补偿完全不同的错误。你自己更仔细地观察它,你真的无法修复它,问一个新问题。这是一个增加值的答案。我在其他类文件中遇到了一些错误,例如-未实现继承的抽象成员“CCN.MSG.ENV.IEnvelopeFactory”。Format@DineshKumarBalaSubramanian:那么你应该实施它……这就是一个完全不同的错误。你自己更仔细地观察它,你真的无法修复它,问一个新问题。