내 프로젝트 중 하나에서 사용하기 위해 Piranha ( http://piranhacms.org/ ) 라는 오픈 소스 CMS를 평가하고 있습니다. 나는 적어도 나에게 다음 코드가 흥미롭고 약간 혼란 스럽다는 것을 알았다. 클래스가 같은 유형의 기본에서 상속받는 이유를 이해하는 데 도움이 될 수 있습니까?
public abstract class BasePage<T> : Page<T> where T : BasePage<T>
{
/// <summary>
/// Gets/sets the page heading.
/// </summary>
[Region(SortOrder = 0)]
public Regions.PageHeading Heading { get; set; }
}
의 클래스 BasePage<T>
가 정의되면 왜에서 상속 Page<T> where T: BasePage<T>
합니까? 어떤 특정한 목적을 수행합니까?