2012-04-07 13 views
3

Es gibt eine virtuelle Methode in einer Bibliothek, auf die mein C# -Projekt verweist. Wie kann ich diese Methode in einer anderen Klasse in meiner Anwendung überschreiben?Überschreiben von Methode aus Bibliothek

Beispiel:

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

Dann in meinem Projekt:

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

Edit: Verwirrung und völlig vergessen, dass diese Klasse erben nicht von der Klassenbibliotheken mir vermasselt, war es spät :)

+0

Sie können sehen: sarwar026

Antwort

4

Sie sollten ein wenig über OOP (und Vererbung im Besonderen) studieren, bevor Sie zu irgendeiner ernsthaften Codierung kommen. Für schnelle Referenz, hier ist ein Beispiel dafür, wie eine Methode außer Kraft zu setzen:

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

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

Sie sollten beachten, dass die Signatur des übergeordneten Verfahren (einschließlich des Namens) muss gleich sein. Die abgeleitete Klasse kann andererseits (und sollte der Klarheit halber typischerweise verwendet werden) anders benannt werden.

+1

I verstehe, wie man eine Methode auf diese Weise überschreibt, aber frage mich, ob es von einer anderen DLL möglich ist. – Cyral

+0

Ja. Im obigen Beispiel kann 'DerivedClass' in einer anderen Assembly von' SomeClass' definiert werden, vorausgesetzt, 'SomeClass' wird als public deklariert. – Douglas

+0

Nun, was ist seltsam, ist Im mit XNA, um meine Anwendung zu machen, Es hat eine Methode namens BeginDraw (GameTime), und meine DLL im Verweisen (Neoforce Controls) hat auch ein BeginDraw (gameTime) – Cyral

Verwandte Themen