2013-12-14 2 views
2

싱글 톤을 구현하는 클래스, 내 DB 테이블에 대한 몇 가지 공통 함수를 구현하는 클래스 및 테이블에 대한 특정 함수를 구현하는 마지막 클래스가 있습니다.C# a 일반 Generic 클래스 다른

그렇게 :

abstract class Singleton<C> where C : class, new() 
class AbstractTable<T> : Singleton<T> 
class myTable: Abstract<myTable> 

문제는 내가 싱글에 두 번째 줄에 T를 통과 할 수 없다는 것입니다.

주어진 오류가 CS0452

이 어떻게 다른 일반적인를 상속 일반적인 코딩 할 수 있습니다 입니까?

답변

5

제네릭 제약의 문제입니다. Singleton case에 제약 조건이 있고 그 클래스의 Generic 상속자가있는 경우 그런 다음이 상속인도 동일한 제약 조건을 가져야합니다. 이처럼

:

abstract class Singleton<C> where C : class, new(){} 
class AbstractTable<T> : Singleton<T> where T : class, new() { } 
class myTable: AbstractTable<myTable>{}