2012-04-07 40 views
3

我的C#項目引用的庫中有一個虛擬方法。我如何在我的應用程序中的另一個類中重寫此方法?從庫重寫方法

例子:

namespace TheLibary 
{ 
    class SomeClass 
    { 
     public virtual void TheMethod() 
     { 
      //Do Stuff 
     } 
    } 
} 

然後在我的項目:

using theLibary; 
namespace TheProject 
{ 
    class SomeClass 
    { 
     public override <Help> 
    } 
} 

編輯:混亂,完全忘記了這個類沒有繼承庫類搞砸了我,這是遲到:)

+0

您可以觀看: sarwar026 2012-04-07 19:19:20

回答

4

在深入研究任何嚴肅的代碼之前,您應該研究一下OOP(特別是繼承)。對於快速參考,下面是如何重寫的方法的例子:

namespace TheDll 
{ 
    public class SomeClass 
    { 
     public virtual void TheMethod() 
     { } 
    } 
} 

namespace TheProject 
{ 
    public class DerivedClass : SomeClass 
    { 
     public override void TheMethod() 
     { } 
    } 
} 

你應該看到,壓倒一切的方法的簽名(包括其名稱)必須是相同的。另一方面,派生類可能(並且通常應該爲了清楚起見)以不同的方式命名。

+1

I理解如何重寫一個方法,但我想知道它是否可能來自不同的DLL。 – Cyral 2012-04-07 19:20:34

+0

是的。在上面的例子中,如果'SomeClass'被聲明爲public,'DerivedClass'可以在與'SomeClass'不同的程序集中定義。 – Douglas 2012-04-07 19:21:59

+0

嗯,最奇怪的是,我使用XNA來製作我的應用程序,它有一個名爲BeginDraw(GameTime)的方法,我的dll im引用(Neoforce Controls)也有一個BeginDraw(gameTime) – Cyral 2012-04-07 19:25:35