2014-09-25 3 views
0

IMyInterface를 구현하는 여러 클래스가 있습니다. 인터페이스에는 Delete라는 메서드가 포함되어 있으므로 모든 클래스가 고유 한 Delete 메서드를 정의합니다.몇 가지 일반 클래스를 사용하는 일반적인 메서드

나는 또한 내가 MyClass1.Delete (myClass1Id) 또는 MyClass2.Delete (myClass2Id)를 호출하고있어 내 코드에 반점이 많은

나는 일반적인, 일반적인 방법을 정의하기 위해 노력하고있어 이 클래스는 제네릭 클래스 매개 변수와 ID에 대한 문자열을 사용합니다.

내가 이런 식으로 뭔가를 보일 것 같은데요,하지만 난 이런 식으로 일반적인 클래스를 사용하는 방법에 대한 모든 관련 문서를 찾을 수 없습니다 :

public static void DeleteGeneric<TMyClass>(string myId) 
{ 
    //call the relevant Delete method for the TMyClass class 
} 
+1

나는 무엇을 하려는지 명확하지 않습니다. 개선하려는 코드의 전체 예제를 제공 할 수 있습니까? – Blorgbeard

답변

3

에서 모두 여기에 제네릭을 사용할 필요가 없습니다를; 타입을 TMyClass는 IMyInterface 인터페이스와 전달 된 매개 변수를 구현하는 것을 말한다

public static void DeleteGeneric<TMyClass>(TMyClass myId) where TMyClass : IMyInterface 
{ 
    myId.Delete(); 
} 

이 타입을 TMyClass은 어떤 유형 인 :이 같은 코드를 원하는 내가 생각

public static void DeleteGeneric(IMyInterface deletable, string myId) 
{ 
    deletable.Delete(myId); 
} 
+1

형식 매개 변수를 삭제하는 것을 잊었습니다. – Blorgbeard

+2

@Blorgbeard 고정. – Servy

1

: 단지 인터페이스의 인스턴스를 받아 .

그것은 정말이 브라우저 아마 구문 오류로이 코드를 입력, 제네릭없이

public static void DeleteGeneric(IMyInterface myId) 
{ 
    myId.Delete(); 
} 

면책 조항 간단 할 수 있습니다.

관련 문제