안녕하세요. 저는 F #에서 프로그래밍을 시작했고 타입 문제에 집착하고 있습니다.매개 변수가 항상 DerrivedType이되도록 제한된 방식으로 사용되었습니다.
member private this.UpdateStats<'T when 'T :> StatisticsBase>(passed: bool, stats: 'T) =
//more stuff..
stats
내가 이런 식으로 전화 해요 : :
는this.UpdateStats<GroupStats>(true, GroupStats(Id = Guid.NewGuid()))
컴파일러는 말한다 :
매개 변수가 그것을 제약하는 방법으로 사용되어왔다 나는이 기능이 항상 GroupStats가되어야합니다.
GroupStats는 StatisticsBase에서 상속됩니다. StatisticsBase에서 상속 한 모든 엔티티에서이 함수를 사용할 수 있도록하려면 어떻게해야합니까?
유형 :
[<AllowNullLiteral>]
type StatisticsBase() =
member val Id = String.Empty with get,set
[<AllowNullLiteral>]
type GroupStats() =
inherit Stats()
StatisticsBase 실제로는 C# 형식에서 상속 및 저장소에 사용되는,하지만 난 더 다시 한
더 많은 코드를 표시해야합니다. 내가 설명한 최소한의 구현으로는 경고를받지 못합니다. 나는'UpdateStats'의 코드가 당신이 들려주는만큼 간단하지 않다고 생각합니다. –