C#中超级关键字的等价物

Posted

技术标签:

【中文标题】C#中超级关键字的等价物【英文标题】:Equivalent of Super Keyword in C# 【发布时间】:2013-07-03 10:29:18 【问题描述】:

super关键字(java)等价的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 关键字 最初尝试使用base 是否以正确的方式使用关键字库

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);
   

谁能帮帮我。

【问题讨论】:

您必须更具体。你得到什么结果,你期待什么?另外,你为什么在 C# 中使用 Java 类? 那说我猜你需要public Imagedata() : base(ResourceLoader.loadProperties(...)) “现在我需要转换成 C#,实际上我尝试使用 base,但我找不到从 java 获取的预期结果” 你期望什么? 实际上使用 java 我可以从 processOperator 方法中提取正确的答案......但我需要通过在 .Net 环境中执行它来获得相同的结果......所以我尝试使用 base kewyword 但我知道我尝试的方式是错误的 @Ganeshja 好的,但我们不知道“正确答案”(或“错误”答案)是什么,也不知道如何测试您的代码以查看我们的答案是否正确。 【参考方案1】:

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);
     
  

【讨论】:

以上是关于C#中超级关键字的等价物的主要内容,如果未能解决你的问题,请参考以下文章

C# 委托 线程

c#多态中注意的点

什么是 Swift “扩展”的 dart 等价物?

寒假 5

java 超级关键字

Android中用于kotlin的静态等价物,以避免处理程序内存泄漏