2013-07-05 4 views
32

スーパーキーワード(java)に相当するc#キーワードは何ですか?C#のスーパーキーワードに相当します。

私のJavaコード:

public class PrintImageLocations extends PDFStreamEngine 
{ 
    public PrintImageLocations() throws IOException 
    { 
     super(ResourceLoader.loadProperties("org/apache/pdfbox/resources/PDFTextStripper.properties", true)); 
    } 

    protected void processOperator(PDFOperator operator, List arguments) throws IOException 
    { 
    super.processOperator(operator, arguments); 
    } 

は今、私はC#の でsuperキーワードと同等のものを必要とするまさに最初に、私は正しい方法で

class Imagedata : PDFStreamEngine 
{ 
    public Imagedata() : base() 
    {           
     ResourceLoader.loadProperties("org/apache/pdfbox/resources/PDFTextStripper.properties", true); 
    } 

    protected override void processOperator(PDFOperator operations, List arguments) 
    { 
     base.processOperator(operations, arguments); 
    } 
} 

をキーワードベースを使用している方法かどうかbaseてみました誰でも私を助けることができます。あなたのコードの

+1

であるあなたは、より具体的にする必要があります。あなたが得ている結果は何ですか?あなたは何を期待していましたか?また、なぜC#でJavaクラスを使用していますか? – millimoose

+3

それは私があなたに 'public Imagedata():base(ResourceLoader.loadProperties(...))が必要だと思います。 – millimoose

+0

* "今はC#に変換する必要がありますが、実際にはベースで試しましたが、期待された結果がJavaからフェッチされたため見つかりませんでした" *何を期待しましたか? –

答えて

40

C#の同等の

class Imagedata : PDFStreamEngine 
    { 
    // C# uses "base" keyword whenever Java uses "super" 
    // so instead of super(...) in Java we should call its C# equivalent (base): 
    public Imagedata() 
     : base(ResourceLoader.loadProperties("org/apache/pdfbox/resources/PDFTextStripper.properties", true)) 
    { } 

    // Java methods are virtual by default, when C# methods aren't. 
    // So we should be sure that processOperator method in base class 
    // (that is PDFStreamEngine) 
    // declared as "virtual" 
    protected override void processOperator(PDFOperator operations, List arguments) 
    { 
     base.processOperator(operations, arguments); 
    } 
    }