2013-10-03 31 views
1

我不断收到此错误找不到合适的方法来覆盖?

Dev_xsc_Build.BigEndianBinaryReader.ReadInt16()': no suitable method found to override 

但我不知道我在哪里有

public override short ReadInt16() 
    { 
     byte[] byteBuffer = base.ReadBytes(2); 
     return (short)((byteBuffer[0] << 8) | byteBuffer[1]); 
    } 

任何帮助,请回事?

+1

如果您删除override关键字,会发生什么情况? – DaveDev

+0

什么是您试图覆盖的方法的声明? – egrunin

+0

什么是Dev_xsc_Build.BigEndianBinaryReader类型和基类型是什么?如果它是从'BinaryReader'派生的,它应该可以工作。 – pescolino

回答

1

你的意思是重写虚拟方法:public **override** short ReadInt16()。这要求您从包含与该声明匹配的虚拟方法的类继承。

就你而言,基类不提供匹配的虚拟方法。您应该能够删除override关键字:

public short ReadInt16() 
{ 
    byte[] byteBuffer = base.ReadBytes(2); 
    return (short)((byteBuffer[0] << 8) | byteBuffer[1]); 
} 
+0

他应该添加'new'关键字来隐藏现有定义吗? – Harrison

+0

@哈里森不需要。没有'new'也会影响基类'method'。 'new'关键字只是为了抑制警告 –

+0

@Harrison我怀疑现在没有定义 - 如果有的话,可能根本没有理由重写它...... –

相关问题