2012-04-07 2 views
3

내 C# 프로젝트가 참조하는 라이브러리에 가상 메서드가 있습니다. 내 응용 프로그램 내의 다른 클래스에서이 메서드를 재정의하려면 어떻게해야합니까?라이브러리의 메서드 재정의

예 : 그럼 내 프로젝트에

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

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

: 혼란 완전히 라이브러리 클래스가 나를 엉망에서이 클래스는 상속하지 않았다는 것을 잊고, 그것은이었다 늦게 :)

+0

다음을 시청할 수 있습니다. sarwar026

답변

4

심각한 코딩을하기 전에 OOP (및 상속)에 대해 조금 공부해야합니다.

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

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

당신은 오버라이드 (override) 메소드의 서명 (이름 포함) 관찰해야 동일해야합니다 : 빠른 참조를 들어, 다음 메소드를 오버라이드 (override)하는 방법의 예입니다. 반대로 파생 클래스는 다른 이름으로 명명 될 수 있습니다 (일반적으로 명확하게하기 위해).

+1

그런 식으로 메서드를 재정의하는 방법을 이해해야하지만 다른 dll로부터 가능한지 궁금해하고 있습니다. – Cyral

+0

예. 위의 예제에서,'SomeClass'가 public으로 선언 되었다면,'DerClived'는'SomeClass'와 다른 어셈블리에서 정의 될 수 있습니다. – Douglas

+0

글쎄요, 내 응용 프로그램을 만들기 위해 XNA를 사용하고 있습니다. BeginDraw (GameTime)라는 메소드가 있고, dref 메신저 (Neoforce Controls)도 BeginDraw (gameTime)를 가지고 있습니다. – Cyral