[英]C# no Suitable method found for override
hi this is my base class 嗨,这是我的基础课
public abstract class IEnvelopeFactory {
public Queue<IEnvelopeFactory> m_Queue;
//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);
}
and the Child Class is as follows 子类如下
public class XMLTYPE4Factory : IEnvelopeFactory
{
public XMLTYPE4 m_XMLTYPE4;
public XMLTYPE4Factory()
{
}
~XMLTYPE4Factory()
{
}
public override void Dispose()
{
}
/// <summary>
/// Parsing
/// </summary>
/// <param name="input"></param>
public override Envelope Parse(string input)
{
return null;
}
/// <summary>
/// Formatting
/// </summary>
/// <param name="env"></param>
public override string Format(Envelope env)
{
return "";
}
}
I am getting the following error 我收到以下错误
'XMLTYPE4Factory' does not implement inherited abstract member
'IEnvelopeFactory.Format(CCN.MSG.ENV.Envelope, out string)'
'XMLTYPE4Factory' does not implement inherited abstract member
'IEnvelopeFactory.Parse(string, out CCN.MSG.ENV.Envelope)'
The method signatures don't match: 方法签名不匹配:
public abstract bool Parse(string input, out Envelope envelope);
public override Envelope Parse(string input)
Also, you shouldn't really prefix a class name with I if it's not an interface. 另外,如果类名不是接口,则不应在其前面加上I。
Yeah the signature doesn't match what you have defined in the base class. 是的,签名与您在基类中定义的不匹配。 Is format supposed to return a string and have a string as an output parameter as well? 格式是否应该返回一个字符串并具有一个字符串作为输出参数?
Also the standard naming convention in C# interfaces start with I. You should remove the I prefix from your base class. 同样,C#接口中的标准命名约定也以I开头。您应该从基类中删除I前缀。
public class XMLTYPE4Factory : IEnvelopeFactory {
public XMLTYPE4 m_XMLTYPE4;
public XMLTYPE4Factory()
{
}
~XMLTYPE4Factory()
{
}
public override void Dispose()
{
}
/// <summary>
/// Parsing
/// </summary>
/// <param name="input"></param>
public override Envelope Parse(string input, out string envStr)
{
envStr= null;
return null;
}
/// <summary>
/// Formatting
/// </summary>
/// <param name="env"></param>
public override string Format(Envelope env, out string envStr)
{
envStr = null;
return "";
}
}
you have not implemented the methods with correct parameters 您尚未使用正确的参数实现方法
Envelope env;
string s;
public override Envelope Parse(string input,out Envelope env)
{
env = new Envelope();
return env;
}
public override string Format(Envelope env,out string s)
{
s="somestring";
return s;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.