추상 제네릭 클래스에서 파생 된 클래스가 자신을 제네릭 매개 변수로 사용하는지 확인하는 방법

1 월

추상 클래스가 있습니다.

public abstract class MyAbstractBase<T> : INotifyPropertyChanged where T : MyAbstractBase<T> {}

몇 가지 클래스를 파생시킵니다.

public class Concrete1 : MyAbstractBase<Concrete1> {};
public class Concrete2 : MyAbstractBase<Concrete2> {};

제네릭 유형이 특정 구체적인 유형의 유형이되도록 MyAbstractBase를 제한하는 방법이 있습니까?

따라서 컴파일러 오류가 발생합니다.

public class Concrete1 : MyAbstractBase<Concrete2> {};

내 현재 해결 방법은 불행히도 컴파일러 경고를 발생시키지 않는 기본 생성자에서 확인하는 것입니다.

protected MyAbstractBase()
{
    _ = this as T ?? throw new Exception("");
}
무례

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters

이 문서에서는 제네릭 유형 매개 변수에 대해 사용 가능한 모든 제약 조건을 나열합니다. 안타깝게도 필요한 작업을 수행하는 데 제약이없는 것 같습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관