2013-10-03 2 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

대체 키워드를 삭제하면 어떻게됩니까? – 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 나는 기존의 정의가 없다고 생각합니다 - 만약 그렇다면 전혀 무시할 이유가 없을 것입니다 ... –

관련 문제